Escolar Documentos
Profissional Documentos
Cultura Documentos
PHP
Pós-Graduação em Desenvolvimento
Web
Apresentação
Apresentação
3
Apresentação
• Foco da disciplina
4
Apresentação
• Referência Bibliográfica
PHP – Programando
com Orientação a
Objetos
Editora: Novatec
5
Apresentação
• Sites auxiliares:
– http://facebook.com/profthyagomaia
– http://twitter.com/thyagomaia
– http://www.slideshare.net/thyagomaia
– http://www.php.net
– http://www.w3schools.com
– http://www.codeacademy.com.br
6
Apresentação
– Notepad++
• https://notepad-plus-plus.org/
– Xampp
• https://www.apachefriends.org/pt_br/index.html
7
Apresentação
• Avaliação:
– Miniprojeto: Desenvolvimento de uma aplicação
PHP orientada a objetos;
• Trabalho em Grupo (3 integrantes);
• Tema Livre (Deverá ser pré-aprovado pelo professor);
• Critérios de Avaliação:
– Interface, usabilidade, aplicação das competências e
habilidades adquiridas durante o curso, aplicação de pelo
menos um padrão de projeto, organização do Projeto e
apresentação ao professor (até 15 min.);
• Exercícios durante as aulas:
– Apresentar resolução na última aula;
8
Paradigmas de Programação
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;
10
Paradigmas de Programação
Principais paradigmas:
Programação Procedural
Programação Orientada a Objetos
12
Paradigmas de Programação
Ex.: Pascal e C;
13
Paradigmas de Programação
Programação Procedural:
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.
14
Paradigma de Programação
Orientado a Objetos
Paradigma de Programação OO
16
Paradigma de Programação OO
Objetos;
Mensagens;
Métodos;
Classes;
17
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;
18
Paradigma de Programação OO
Exemplo 1 – Implementação de uma classe em PHP:
// Arquivo Produto.php
<?php
class Produto
{
// Classe com 4 atributos
public $codigo;
public $descricao;
public $preco;
public $quantidade;
}
?>
19
Paradigma de Programação OO
Exemplo 1 – Instanciando um objeto da classe
Produto:
// Arquivo testeObjeto.php
<?php
// Incluindo a classe criada anteriormente
require_once ‘classes/Produto.php’;
// Criando um objeto
$produto = new Produto();
21
Paradigma de Programação OO
Exemplo 2 – A classe Produto com atributos e um
método:
// Arquivo Produto.class.php
?>
22
Paradigma de Programação OO
Exemplo 2 – Instanciando um objeto da classe
Produto e executando um método do mesmo:
// Arquivo testeObjeto.php
<?php
// Incluindo a classe criada anteriormente
require_once ‘classes/Produto.php’;
// Criando um objeto
$produto = new Produto();
// Atribuindo valores aos atributos
$produto->codigo = 4001;
$produto->descricao = ‘CD – AC/DC’;
$produto->imprimeEtiqueta();
?>
23
PHP OO – Construtores e
Destrutores
Construtor
Sintaxe:
26
Destrutor
27
Destrutor
Sintaxe:
function __destruct()
28
PHP OO – Herança
Herança
30
Herança
Superclasse: Características comuns
Uma subclasse
pode herdar Pessoa
todos os # nome: String
componentes de + escreverNome()
uma classe pai;
Sintaxe:
<?php
32
Exercício
Exercício
34
Exercício
Etapa 2 - Crie as seguintes classes na pasta
heranca/classes:
OBS 1: Crie métodos
get e set caso seja necessário. Funcionario
Construtores também podem
# nome: string
ser utilizados.
# salario: float
OBS 2: O métodos relatorio + relatorioFunc()
simplesmente exibe as
informações do funcionário
no navegador
Gerente Programador
- projeto: string - linguagem: string
35
Exercício
• Etapa 3 – Criação de um formulário HTML
Ex.:
Figura
# x: double
# y: double
+ mostraArea()
Triangulo Quadrado
+ mostraArea() + mostraArea()
40
Exercício
Exercício
42
Polimorfismo
Etapa 2: Crie as seguintes classes na pasta
polimorfismo/classes :
Conta
# saldo: double
OBS: Crie os métodos
get e set necessários. Construtores + deposita(double)
podem ser criados. + saca(double)
+ imprimeExtrato()
OBS: O método saca da
Subclasse ContaCorrente
Deverá descontar uma
taxa de 10 centavos em
cada saque. ContaCorrente ContaPoupanca
+ deposita(double)
43
Exercício
• Etapa 3 – Criação do script index.php na pasta
polimorfismo
44
PHP OO – Classes Abstratas
Classes Abstratas
46
Classes Abstratas
Sintaxe:
<?php
47
Classes Abstratas
Figura
# x: double
# y: double
+ mostraArea()
Triangulo Quadrado
+ mostraArea() + mostraArea()
48
Classes Abstratas
Triangulo Quadrado
+ mostraArea() + mostraArea()
49
Classes Abstratas
Figura
# x: double Tal classe é uma forte
# y: double candidata a ser uma
+ mostraArea() classe abstrata!
Triangulo Quadrado
+ mostraArea() + mostraArea()
50
PHP OO – Métodos Abstratos
Métodos Abstratos
<?php
// ...
// ...
53
Métodos Abstratos
Figura
# x: double
# y: double
+ mostraArea()
Triangulo Quadrado
+ mostraArea() + mostraArea()
54
Métodos Abstratos
Triangulo Quadrado
+ mostraArea() + mostraArea()
55
Métodos Abstratos
Figura
# x: double Tal método é um forte
# y: double candidato a ser um
+ mostraArea() método abstrato!
Triangulo Quadrado
+ mostraArea() + mostraArea()
56
Exercício
Exercício
58
Exercício
Etapa 2: Crie as seguintes classes na pasta
abstratos/classes : Classe abstrata
+ habitoAlimentar() + habitoAlimentar()
59
Exercício
• Etapa 3 – Criação do script index.php na pasta
abstratos
60
PHP OO – Classes Finais
Classes Finais
Sintaxe - Exemplo:
<?php
62
PHP OO – Métodos Finais
Métodos Finais
64
Métodos Finais
Sintaxe - Exemplo:
<?php
// ...
// ...
65
PHP OO – Encapsulamento
Encapsulamento
67
Encapsulamento
(+) public;
(-) private;
(#) protected;
69
Encapsulamento
Exemplo:
70
Encapsulamento
Exemplo:
71
PHP OO – Armazenamento de
Dados em Classes
Armazenamento em Classes
Atributos Estáticos;
73
Armazenamento em Classes
Sintaxe – Constantes – Exemplo:
<?php
class Biblioteca
{
const Nome = “GTK ”;
}
?>
75
Armazenamento em Classes
Sintaxe – Atributos Estáticos – Exemplo:
<?php
class Aplicacao
{
public static $Quantidade;
}
?>
function __construct()
{
static::$Quantidade++;
}
}
79
Métodos Estáticos
<?php
class Aplicacao {
private static $Quantidade;
83
Interface
Sintaxe – Exemplo: << interface >>
IMensagem
<?php
+ mensagem()
interface IMensagem
{
function mensagem();
}
Ex:
Figura << interface >>
ICalculos
# x: double
# y: double
+ calculaArea(): double
Triangulo Quadrado
85
Exercício
Exercício
87
Exercício
Etapa 2 - Implemente as classes abaixo na
pasta dedicada para tal:
<< interface >>
Veiculo ICaracteristicas
# nome: String
# marca: String
+ exibeNome()
# modelo: String
+ exibeMarca()
getters e setters + exibeModelo()
Carro Moto
+ exibeNome() + exibeNome()
+ exibeMarca() + exibeMarca()
+ exibeModelo() + exibeModelo() 88
Exercício
• Etapa 3 – Criação de um formulário HTML
89
Exercício
90
PDO – PHP Data Objects
PDO – PHP Data Objects
92
PDO – PHP Data Objects
• Sequência de passos:
94
PDO – Exemplos
PDO – Exemplos
Database: livros
Tabela: famosos
Campos: id (int, auto increment, chave primária) e
nome (varchar[100]);
96
PDO – Exemplos
<?php
$conn = new
PDO('mysql:host=localhost;dbname=livros', ‘root',
'');
$conn = null;
?>
97
PDO – Exemplos
Exemplo 2: Listagem via PDO
<?php
$conn = new
PDO('mysql:host=localhost;dbname=livros', ‘root',
'');
if($result)
foreach($result as $row)
echo $row['id'] . '-' .
$row['nome'] . '<br>';
$conn = null;
?>
98
PDO – Exemplos
<?php
$conn = new
PDO('mysql:host=localhost;dbname=livros', ‘root',
'Unipe');
$conn = null;
?>
99
Exercício
Exercício
Database: sistema
Tabela: cadastro
Campos: codigo (int, auto increment, chave primária),
nome (varchar[100]), telefone (varchar[100]) e email
(varchar[100]);
101
Exercício
102
Exercício
103
Exercício
105
Exercício
106
Exercício
Exercício
108
Exercício
109
Exercício
110
Exercício
• Etapa 4 – Criação da classe Cadastro.php na
pasta sistema
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
111
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;
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;
112
Exercício
113