Aula sobre o uso de orientação a objetos em PHP. Utilizada no curso de extensão em desenvolvimento em Nuvem com PHP do curso técnico em informática do IFPE - Campus Garanhuns.
2. Softwares orientado a objetos
Orientação a objetos é um paradigma computacional que
propõe uma metodologia para construção de software
A base deste paradigma está em associar o domínio do
problema do software à objetos que se relacionam, similar a
nossa realide
PHP desde a versão 5 oferece suporte completo a orientação a
objetos
3. Suporte do PHP a O.O.
Classes e objetos
Métodos, controle de visibilidade
Herança, interfaces, classes e métodos abstratos
Ponteiro this
Dentre outros recursos específicos do PHP
4. Declaração de classes
Classes são a base para orientação a objetos, elas representam
algum domínio do problema de nosso software
Assim como no Java e em outras linguagens a declaração de uma
classe começa pela palavra class
Em geral criamos um arquivo .php para cade classe
5. Exercício
Vamos transformar em orientado a objetos nosso
sistema de cadastro de cursos
Declarem uma classe para representar um curso da
escola
6. Construtores e destrutores
São um tipo especial de “métodos” que são invocados quando
um objeto é instanciado ou deletado
Os utilizamos para iniciar recursos e atributos (construtor) e
liberar recursos quando não mais necessários (destrutor)
Para construtores utilizamos a sintaxe __construct e __destruct
Antes do PHP5 havia a possibilidade de utilizar construtores com
o mesmo nome da classe, porém isto está deprecated
8. Atributos de classes
Atributos são usados para definir a estrutura de uma classe
Valores para estes atributos definem estados para um objeto
Estes atributos podem ser inicializados com um valor pré-
definido
Caso observem a declaração de variáveis precedida pela palavra
var, não se assustem equivale a declaração public e está em
desuso
O construtor da classe também pode ser usado para inicializar
os valores destes atributos
10. Ponteiro $this
Quando precisamos acessar atributos ou métodos de nossas
classes, o fazemos através de uma “pseudo-variável”
denominada $this
Para quem vem de Java ou C++, já ouviu falar do ponteiro this
Seu uso em PHP é obrigatório!
11. Declaração de métodos
Métodos são ações ou operações que uma classe pode
realizar
Sua declaração é similar aos das funções que já vimos, exceto
pela possibilidade de utilizar controles de visibilidade
13. Herança
Herança permite que relações de similaridade que existe em nosso
cotidiano posssam ser representadas na orientação a objetos
PHP permite o uso de heranças de maneira similar ao Java, onde
declaramos uma classe pai, em seguida a classe filha e utilizamos o
operador extends para fazer a herança entre elas
O acesso a métodos da classe pai é feito através da palavra
reservada parent::
14. Autoloading de classes
Como dito anteriormente, em geral, criamos um arquivo .php
para cada classe. Qual o problema com isto?
PHP oferece uma forma de evitar a necessidade de múltiplos
includes em uma página, e o chama de Autoloading de classes
O autoloading é realizado através de uma função denominada
__autoload(nome_classe) Problema!!!
15. Operador de resolução de escopo ::
O acesso a determinadas propriedades e métodos é feito de forma
diferente dependendo de como eles tenham sido declarados
Para acesso a métodos declarados em classes pai vimos que
utilizamos o operador parent::
Para o acesso a atributos constantes utilizamos a sintaxe
Classe::atributo
Para o acesso a atributos estáticos utilizamso o operador self::
sucedido do nome da variável com $
16. Classes abstratas
Classes abstratas não podem ser instanciadas e métodos
abstratos não possuem implementação
O uso de classes abstratas possibilita um “contrato” entre essas
classes e as classes que irão estendê-las
A declaração de classes abstratas e métodos abstratos é feita
através da palavra reservada abstract
17. Interfaces
Também são usadas como forma de estabelecer um
contrato
Diferem de classes abstratas por alguns aspectos:
Não podem implementar métodos
Não possuem atritubos
Possibilitam uma “alternativa” a impossibilidade de
herança multipla
Para utilizá-las é usado a palavra reservada
implements