Você está na página 1de 37

Fundamentos da Programação

PHP OO

Pós-Graduação em Desenvolvimento
Web
Apresentação
Apresentação

• Professor: Thyago Maia Tavares de Farias

– Doutorando em Computação pelo Cin / UFPE


– Mestre em Informática pelo PPGI / DI / UFPB
– Bacharel em Ciência da Computação – UFPB
– Currículo Lattes: http://lattes.thyagomaia.net
– E-Mail: thyagomaia@gmail.com

3
Apresentação

• Foco da disciplina

 Apresentar os fundamentos do paradigma


orientado a objetos aplicado em PHP (PHP OO);

4
Apresentação

• Referência Bibliográfica

 PHP – Programando
com Orientação a
Objetos

 Autor: Pablo Dall’Oglio

 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

• Aplicações que serão utilizados no curso:

– 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.);
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

 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;
11
Paradigmas de Programação

 Principais paradigmas:

 Programação Procedural
 Programação Orientada a Objetos

12
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;

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

 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;

16
Paradigma de Programação OO

 O modelo OO é formado por quatro


componentes básicos:

 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 ‘classes/Produto.php’;

// Criando um objeto
$produto = new Produto();

// Atribuindo valores aos atributos


$produto->codigo = 4001;
$produto->descricao = ‘CD – AC/DC’;
?>
20
Paradigma de Programação OO
 Exemplo 2 – A classe Produto com atributos e um
método:
// Arquivo Produto.class.php
<?php
class Produto
{
// Classe com 4 atributos
public $codigo;
public $descricao;
public $preco;
public $quantidade;

21
Paradigma de Programação OO
 Exemplo 2 – A classe Produto com atributos e um
método:
// Arquivo Produto.class.php

public function imprimeEtiqueta()


{
echo ‘Código: ’ . $this->codigo .
‘<br>’;
echo ‘Descrição: ’ . $this-
>descricao . ‘<br>’;
}
}

?>
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 ‘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

 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);
25
Construtor

 Sintaxe:

function __construct($p_1, $p_2, ..., $p_n)

26
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.;

27
Destrutor

 Sintaxe:

function __destruct()

28
PHP OO – Herança
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;

30
Herança
Superclasse: Características comuns
 Uma subclasse
pode herdar Pessoa
todos os nome: String
componentes de escreverNome()
uma classe pai;

 Permite a Juridica Fisica

criação de novas cnpj: String cpf: String

classes sem validarCNPJ(): Boolean validarCPF(): Boolean

duplicação de Subclasses: Características específicas


código; 31
Herança

 Usamos a palavra reservada extends na assinatura


de uma classe para estabelecer uma hierarquia;

 Sintaxe:

<?php

class Filha extends Pai


{
// ...

32
Exercício
Exercício

• Etapa 1 – Preparação do Domínio

 Crie uma pasta em htdocs chamada heranca;


 Na pasta heranca, crie uma pasta chamada
classes;

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: double
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

 Crie um formulário HTML que permita ao usuário


digitar o nome, salário e observações de um
funcionário, além de informar se o mesmo é um
gerente ou programador;
 Método de envio: POST;
 Os dados deverão ser submetidos para o script
“exibirFunc.php”;
 Salve o documento HTML na pasta heranca com o
nome index.html;
36
Exercício
• Etapa 4 – Criação do script exibirFunc.php na
pasta herança
 O script deverá inicialmente receber os dados submetidos
pelo formulário HTML;
 Em seguida, o script deverá criar um objeto da classe que
representa o cargo do funcionário;
 Com o objeto criado, os dados enviados a partir do
formulário deverão ser submetidos para o mesmo;
 O script deverá executar o método relatorioFunc,
objetivando apresentar os dados do funcionário;
 O script deverá exibir as observações do funcionário (o
projeto ou a linguagem de programação);
37

Você também pode gostar