pós graduação unipê - desenvolvimento web com php - aula 3
TRANSCRIPT
![Page 1: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/1.jpg)
Desenvolvimento Web com PHP
Pós-Graduação em Desenvolvimento Web
![Page 2: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/2.jpg)
Paradigmas de Programação
![Page 3: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/3.jpg)
Paradigmas de Programação
Uma linguagem de programação (LP) = Notação formal para descrição de algoritmos em um computador;
É necessário entender as organizações das LP, com ênfase na compreensão dos seus conceitos abstratos e dos seus elementos de representação;
3
![Page 4: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/4.jpg)
Paradigmas de Programação
Cada LP pode se relacionar com um método de projeto específico;
Cada linguagem de programação pode forçar um certo estilo de programação;
Tais estilos são chamados de paradigmas de programação;
4
![Page 5: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/5.jpg)
Paradigmas de Programação
Principais paradigmas:
Programação Procedural Programação Orientada a Objetos
5
![Page 6: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/6.jpg)
Paradigmas de Programação
Programação Procedural (Estruturado): Estilo de programação convencional (descrita no
aprendizado em algoritmos); Programas são decompostos em “passos” de
processamento; Rotinas são usadas na modularização de passos
específicos;
Ex.: Pascal e C;
6
![Page 7: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/7.jpg)
Paradigmas de Programação
Programação Procedural:
7
program Teste; var
a, b:integer; begin
writeln('Digite um número para 7'); readln(a); writeln('Digite o número para 6'); readln(b); if (a > b) then { Se 7 é maior que 6 então }
writeln('7 é maior que 6') else { Senão… }
if (a < b) then writeln('6 é maior que 7')
else writeln('6 é igual à 7');
end.
![Page 8: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/8.jpg)
Paradigma de Programação Orientado a Objetos
![Page 9: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/9.jpg)
Paradigma de Programação OO
O paradigma OO propõe que a solução de qualquer problema pode ser obtida seguindo estas etapas:
Procurar e implementar classes existentes no problema; Determinar as características e responsabilidades de cada
classe; Instanciar objetos de cada classe; Estabelecer como ocorrerá a interação entre os objetos;
9
![Page 10: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/10.jpg)
Paradigma de Programação OO
Classe Estrutura de dados que possui atributos (variáveis de
classe) e métodos (funções PHP); Descreve as propriedades e comportamentos de objetos;
Modelo ou template para objetos;
Objeto Originada com base em uma classe; A partir de um objeto, temos “uma cópia” dos atributos e
métodos de uma classe; Interagem no sistema e armazenam dados;
10
![Page 11: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/11.jpg)
Paradigma de Programação OO Exemplo 1 – Implementação de uma classe em PHP:
11
// Arquivo Produto.class.php
<?php
class Produto{
// Classe com 4 atributospublic $codigo;public $descricao;public $preco;public $quantidade;
}
?>
![Page 12: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/12.jpg)
Paradigma de Programação OO Exemplo 1 – Instanciando um objeto da classe
Produto:
12
// Arquivo testeObjeto.php
<?php// Incluindo a classe criada anteriormenteinclude_once ‘classes/Produto.class.php’;
// Criando um objeto$produto = new Produto;
// Atribuindo valores aos atributos$produto->codigo = 4001;$produto->descricao = ‘CD – AC/DC’;
?>
![Page 13: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/13.jpg)
Paradigma de Programação OO Exemplo 2 – A classe Produto com atributos e um
método:
13
// Arquivo Produto.class.php<?php
class Produto{
// Classe com 4 atributospublic $codigo;public $descricao;public $preco;public $quantidade;
![Page 14: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/14.jpg)
Paradigma de Programação OO Exemplo 2 – A classe Produto com atributos e um
método:
14
// Arquivo Produto.class.php
function imprimeEtiqueta(){
echo ‘Código: ’ . $this->codigo . ‘<br>’;
echo ‘Descrição: ’ . $this->descricao . ‘<br>’;
}}
?>
![Page 15: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/15.jpg)
Paradigma de Programação OO Exemplo 2 – Instanciando um objeto da classe
Produto e executando um método do mesmo:
15
// Arquivo testeObjeto.php
<?php// Incluindo a classe criada anteriormenteinclude_once ‘classes/Produto.class.php’;// Criando um objeto$produto = new Produto;// Atribuindo valores aos atributos$produto->codigo = 4001;$produto->descricao = ‘CD – AC/DC’;
$produto->imprimeEtiqueta();?>
![Page 16: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/16.jpg)
PHP OO – Construtores e Destrutores
![Page 17: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/17.jpg)
Construtor
Método especial utilizado para definir o comportamento inicial de um objeto;
Muito utilizado para inicializar atributos (variáveis de classe);
Executado automaticamente no momento da instância de um objeto (uso da palavra reservada new);
17
![Page 18: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/18.jpg)
Construtor
Sintaxe:
18
function __construct($p_1, $p_2, ..., $p_n)
![Page 19: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/19.jpg)
Destrutor
Método especial a ser executado automaticamente quando o objeto é desalocado da memória ou quando o programa é finalizado;
Muito utilizado para finalizar conexões, apagar arquivos temporários, etc.;
19
![Page 20: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/20.jpg)
Destrutor
Sintaxe:
20
function __destruct()
![Page 21: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/21.jpg)
PHP OO – Herança
![Page 22: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/22.jpg)
Herança
Permite reutilizar atributos e métodos já definidos em uma outra classe;
Elimina eventuais duplicações ou reescritas de código;
Classes-filha (subclasses) herdam implementações da classe-pai (superclasse) de acordo com uma hierarquia;
22
![Page 23: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/23.jpg)
Herança
Usamos a palavra reservada extends na assinatura de uma classe para estabelecer uma hierarquia;
Sintaxe:
23
<?php
class Filha extends Pai{
// ...
![Page 24: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/24.jpg)
PHP OO – Polimorfismo
![Page 25: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/25.jpg)
Polimorfismo
Permite que subclasses possuam métodos iguais (com a mesma assinatura) de uma superclasse, mas com comportamentos diferentes;
As implementações de tais métodos são redefinidas nas classes-filhas;
Classes-filha (subclasses) herdam implementações da classe-pai (superclasse) de acordo com uma hierarquia;
25
![Page 26: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/26.jpg)
PHP OO – Classes Abstratas
![Page 27: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/27.jpg)
Classes Abstratas
Classes estruturais que servem de base para outras classes;
Não podem ser instanciadas (terem objetos) Apenas as subclasses poderão ser instanciadas;
Usamos a palavra reservada abstract na assinatura de uma classe para torná-la abstrata;
27
![Page 28: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/28.jpg)
Classes Abstratas
Sintaxe:
28
<?php
abstract class Conta{
// ...
![Page 29: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/29.jpg)
PHP OO – Classes Finais
![Page 30: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/30.jpg)
Classes Finais
Classes que não podem ter herdeiros (não podem ser superclasses);
Sintaxe - Exemplo:
30
<?php
final class ContaPoupanca extends Conta {
// ...
![Page 31: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/31.jpg)
PHP OO – Métodos Abstratos
![Page 32: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/32.jpg)
Métodos Abstratos
Métodos que possui apenas assinaturas, implementados em classes abstratas; Não possuem implementação!
Faz com que as classes-filha sejam obrigadas a definir as implementações dos métodos abstratos; Impõem o polimorfismo às subclasses!
Usamos a palavra reservada abstract na assinatura de um método para torná-la abstrata;
32
![Page 33: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/33.jpg)
Métodos Abstratos Sintaxe - Exemplo:
33
<?php
// ...
abstract function transferir($conta);
// ...
![Page 34: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/34.jpg)
PHP OO – Métodos Finais
![Page 35: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/35.jpg)
Métodos Finais
Métodos que não podem ser sobrescritos; Proíbem que subclasses usem polimorfismo!
Usamos a palavra reservada final na assinatura de um método para impedir que seja sobrescrita;
35
![Page 36: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/36.jpg)
Métodos Finais Sintaxe - Exemplo:
36
<?php
// ...
final function transferir($conta){
// ...
![Page 37: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/37.jpg)
PHP OO – Encapsulamento
![Page 38: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/38.jpg)
Encapsulamento
Mecanismo que provê proteção de acesso aos atributos e métodos de um objeto;
A depender de um projeto de uma classe, certos atributos e métodos devem ser tratados exclusivamente: Pela classe que os possui; Pela superclasse e subclasses em uma hierarquia; Por qualquer classe ou script;
38
![Page 39: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/39.jpg)
Encapsulamento
Para definir a visibilidade dos membros de um objeto, usamos as palavras reservadas public, private ou protected na assinatura de atributos e métodos; public – Podem ser acessados livremente; private – Podem ser acessados dentro da própria
classe em que foram declarados; protected – Podem ser acessados dentro da
própria classe em que foram declarados e a partir das classes descendentes;
39
![Page 40: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/40.jpg)
Encapsulamento
Representação UML para as visibilidades de atributos e métodos em diagramas de classe:
(+) public; (-) private; (#) protected;
40
![Page 41: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/41.jpg)
PHP OO – Armazenamento de Dados em Classes
![Page 42: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/42.jpg)
Armazenamento em Classes
Os seguintes membros podem ser utilizados para armazenamento de dados em classes: Constantes; Atributos Estáticos;
Podem ser acessados diretamente a partir do nome da classe, sem a necessidade de um objeto para tal;
42
![Page 43: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/43.jpg)
Armazenamento em Classes
Sintaxe – Constantes – Exemplo:
Para acessar uma constante de classe... ... a partir da própria classe: self::Nome; ... a partir de uma subclasse: parent::Nome; ... Externamente, fora da hierarquia: Biblioteca::Nome;
43
<?phpclass Biblioteca{
const Nome = “GTK ”;}
?>
![Page 44: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/44.jpg)
Armazenamento em Classes
Sintaxe – Constantes – Exemplo:
44
<?phpclass Biblioteca{
const Nome = “GTK ”;}
echo Biblioteca::Nome . ‘<br>’;?>
![Page 45: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/45.jpg)
Armazenamento em Classes Sintaxe – Atributos Estáticos – Exemplo:
Para acessar um atributo de classe estático... ... a partir da própria classe: self::$Quantidade; ... a partir de uma subclasse: parent::$Quantidade; ... Externamente, fora da hierarquia: Aplicacao::
$Quantidade;45
<?phpclass Aplicacao{
static $Quantidade;}
?>
![Page 46: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/46.jpg)
Armazenamento em Classes Sintaxe – Atributos Estáticos – Exemplo:
46
<?phpclass Aplicacao{
static $Quantidade;
function __construct(){
self::$Quantidade++;}
}
new Aplicacao();
echo Aplicacao::$Quantidade . ‘<br>’;?>
![Page 47: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/47.jpg)
PHP OO – Métodos Estáticos
![Page 48: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/48.jpg)
Métodos Estáticos
Podem ser invocados diretamente pelo nome da classe, sem a necessidade de instanciar um objeto; Só podem manipular atributos estáticos; Só podem chamar outros métodos estáticos;
Usamos a palavra reservada static na assinatura de um método de classe;
Usamos a sintaxe NomeDaClasse::NomeDoMetodo() para executar um método estático;
48
![Page 49: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/49.jpg)
Métodos Estáticos Sintaxe – Métodos Estáticos – Exemplo:
49
<?phpclass Aplicacao{
static function Sobre() {echo “Teste estático”;
}}
Aplicacao::Sobre();?>
![Page 50: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/50.jpg)
PHP OO – Interfaces
![Page 51: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/51.jpg)
Interface
Classe que define um conjunto de métodos que determinadas classes de um sistema deverão implementar incondicionalmente;
Seus métodos possuem apenas assinaturas; Não possuem implementação!
Tal classe não possui atributos;
51
![Page 52: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/52.jpg)
Interface
Usamos a palavra reservada interface na assinatura da classe que funcionará como uma interface;
Usamos a palavra reservada implements na assinatura da classe que implementará uma interface;
Uma classe pode implementar mais de uma interface;
52
![Page 53: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/53.jpg)
Interface
Sintaxe – Exemplo:
53
<?php
interface IMensagem{
function mensagem();}
class Aplicacao implements IMensagem{
function mensagem() {echo ‘Exemplo interface’;
}}
?>
![Page 54: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/54.jpg)
PDO – PHP Data Objects
![Page 55: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/55.jpg)
PDO – PHP Data Objects
Unifica o acesso às diferentes extensões de bancos de dados presentes em PHP;
Provê uma API limpa e consistente, unificando a
maioria das características presentes nas extensões de acesso a banco de dados
Unifica a chamada de métodos, graças à orientação a objetos presentes no PHP5;
55
![Page 56: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/56.jpg)
PDO – PHP Data Objects
• Sequência de passos:
1. A aplicação estabelece uma conexão com o SGBD; 2. A aplicação seleciona uma base de dados a ser utilizada durante a conexão; 3. A aplicação executa uma consulta específica (seleção, inserção, remoção...); 4. A aplicação fecha a conexão corrente com o SGBD;
![Page 57: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/57.jpg)
PDO – PHP Data Objects
PDO – Conexão com bancos de dados:
57
Banco String de ConexãoSQLite new PDO(‘sqlite: teste.db’);FireBird new PDO(“firebird:dbname=C:\\base.GDB”, “SYSDBA”, “masterkey”);MySQL new PDO('mysql:host=localhost;dbname=base', 'login', 'senha');Postgres new PDO('pgsql:dbname=example; user=user;
password=senha;host=localhost');
![Page 58: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/58.jpg)
PDO – Exemplos
![Page 59: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/59.jpg)
PDO – Exemplos
No phpmyadmin, configure o banco de dados da atividade:
Database: livros Tabela: famosos
Campos: codigo (int, auto increment, chave primária) e nome (varchar[100]);
59
![Page 60: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/60.jpg)
PDO – Exemplos
Exemplo 1: Inserindo dados via PDO
60
<?php
$conn = new PDO('mysql:host=localhost;dbname=livros', 'Root', 'Unipe');
$conn->exec("INSERT INTO famosos (nome) VALUES ('Thyago Maia')");
$conn = null;
?>
![Page 61: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/61.jpg)
PDO – Exemplos Exemplo 2: Listagem via PDO
61
<?php$conn = new
PDO('mysql:host=localhost;dbname=livros', 'Root', 'Unipe');
$result = $conn->query("SELECT codigo, nome from famosos");
if($result)foreach($result as $row)
echo $row[‘codigo'] . '-' . $row['nome'] . '<br>';
$conn = null;?>
![Page 62: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/62.jpg)
PDO – Exemplos
Exemplo 3: Excluindo dados via PDO
62
<?php
$conn = new PDO('mysql:host=localhost;dbname=livros', 'Root', 'Unipe');
$conn->exec("DELETE FROM famosos WHERE codigo = 1");
$conn = null;
?>
![Page 63: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/63.jpg)
Exercício
![Page 64: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/64.jpg)
Exercício
• Etapa 1 – Preparação do Banco de Dados no phpmyadmin
Database: sistema Tabela: cadastro
Campos: codigo (int, auto increment, chave primária), nome (varchar[100]), telefone (varchar[100]) e email (varchar[100]);
64
![Page 65: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/65.jpg)
Exercício
• Etapa 2 – Preparação do Domínio
Crie uma pasta em htdocs chamada sistema;
65
![Page 66: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/66.jpg)
Exercício
• Etapa 3 – Criação de um formulário HTML
Crie um formulário HTML que permita ao usuário digitar seu nome, telefone e e-mail; Método de envio: POST; Os dados deverão ser submetidos para o script
“cadastro.php”; Salve o documento HTML na pasta sistema com o
nome index.html;
66
![Page 67: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/67.jpg)
Exercício
• Etapa 4 – Criação do script cadastro.php na pasta sistema
O script deverá inicialmente receber os dados submetidos na etapa anterior;
Em seguida, via PDO, o script deverá inserir os dados no banco de dados;
O script deverá redirecionar o usuário para o script lista_usuarios.php;
67
![Page 68: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/68.jpg)
Exercício
• Etapa 5 – Criação do script lista_usuarios.php na pasta sistema
– O script deverá exibir todos os cadastros efetuados até o momento, além de disponibilizar um link que permita ao usuário efetuar um novo cadastro;
68
![Page 69: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/69.jpg)
Exercício
• Etapa 6 – Testar a aplicação
Abra o navegador de sua preferência e acesse: http://localhost/sistema ou http://127.0.0.1/sistema
OBS.: Verifique se o servidor Apache do Xampp está ativo;
69
![Page 70: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/70.jpg)
Exercício
![Page 71: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/71.jpg)
Exercício
• Etapa 1 – Preparação do Banco de Dados no phpmyadmin
Utilizaremos a mesma base criada no exercício anterior;
71
![Page 72: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/72.jpg)
Exercício
• Etapa 2 – Preparação do Domínio
Utilizaremos a pasta sistema criada anteriormente;
72
![Page 73: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/73.jpg)
Exercício
• Etapa 3 – Criação de um formulário HTML
Utilizaremos o mesmo formulário do exercício anterior;
73
![Page 74: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/74.jpg)
Exercício• Etapa 4 – Criação da classe Cadastro.class.php
na pasta sistema
74
Cadastro-nome: string-telefone: string-email: string+setNome(nome: string) : void+setTelefone(telefone: string) : void+setEmail(email: string) : void+getNome() : string+getTelefone() : string+getEmail() : string+inserir() : void+exibir() :void
![Page 75: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/75.jpg)
Exercício• Etapa 5 – Atualização do script cadastro.php
da pasta sistema O script deverá:
Receber os dados submetidos na etapa anterior; Instanciar um objeto da classe Cadastro; Atribuir os dados recebidos para o objeto instanciado
(via construtor de classe); Executar o método inserir a partir do objeto
instanciado; Executar o método exibir a partir do objeto
instanciado; Disponibilizar um link que permita ao usuário efetuar
um novo cadastro; 75
![Page 76: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/76.jpg)
Exercício
• Etapa 6 – Testar a aplicação
Abra o navegador de sua preferência e acesse: http://localhost/sistema ou http://127.0.0.1/sistema
OBS.: Verifique se o servidor Apache do Xampp está ativo!
76
![Page 77: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/77.jpg)
Design Patterns
![Page 78: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/78.jpg)
Design Patterns
Termo largamente utilizado no mundo da orientação a objetos;
Descrevem formas de comunicação e
relacionamentos entre objetos e classes, de maneira a solucionar problemas específicos de projetos OO;
Adotar um Design Pattern não torna mais simples nem mais rápida a implementação de um projeto, mas a torna mais flexível, facilitando o reuso;
78
![Page 79: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/79.jpg)
Exemplos de Design Patterns
![Page 80: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/80.jpg)
Singleton
Permite que um objeto fique disponível para toda a aplicação, porém sem perder o encapsulamento (evitar variáveis globais);
Permite a criação de APENAS UM objeto de determinada classe;
Tal objeto é passível de ser compartilhado por qualquer classe, como um recurso global;
80
![Page 81: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/81.jpg)
Singleton
Exemplo:
81
<?phpclass Singleton {
private static $instance;
public static function getInstance() {if(empty(self::$instance)) {
self::$instance = new self;}return self::$instance;
}}
?>
![Page 82: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/82.jpg)
MVC
Define a separação de classes em 3 grandes grupos de responsabilidades:
Model (Modelo): Classe que define a lógica da aplicação; View (Visualização): Classe responsável pela saída da
aplicação; Controller (Controle): Classe que recebe requisições do
usuário e controla a instância de Views e Models;
A ideia principal é não misturar em uma mesma
classe funcionalidades diferentes;82
![Page 83: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/83.jpg)
MVC
Exemplo:
83
<?phpclass Model {
private $dado;
public function getDado() {return $this->dado;
}public function setDado($dado) {
$this->dado = $dado;}
}?>
![Page 84: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/84.jpg)
MVC
Exemplo:
84
<?phpclass View {
public function exibeDado($dado) {echo “<b>”.$dado.”</b>”;
} }?>
![Page 85: Pós Graduação Unipê - Desenvolvimento Web com PHP - Aula 3](https://reader035.vdocuments.net/reader035/viewer/2022062316/5872867e1a28abc7068b73f1/html5/thumbnails/85.jpg)
MVC
Exemplo:
85
<?phpclass Controller {
public function principal() {$model = new Model;$view = new View;
$model->setDado(“Teste”);$view->exibeDado($model-
>getDado());}
}?>