Avançando em Programação Orientada a Objetos com PHP, aprendendo sobre Polimorfismo e Interfaces.
- O que é herança.
- Como a herança pode auxiliar com duplicação de código.
- Para acessar um membro da classe mãe, utilizamos
parent
. - Modificador de acesso
protected
.
- Separar classes em namespaces, assim como separamos arquivos em pastas.
- Separando as classes em namespaces podemos ter classes com o mesmo nome em namespaces diferentes.
- Utilizando um namespace raiz (chamado de vendor namespace em algumas literaturas) podemos evitar conflitos com classes de pacotes externos.
- Para utilizar uma classe precisamos importá-la utilizando
use
ou informar seu nome completo (com namespace) em todos os locais onde ela for utilizada. - Através de um autoloader com o PHP (
spl_autoload_register
) podemos evitar ficar utilizandorequire
para incluir todos os arquivos necessários para executar o programa.
- Entendemos que podemos ter classes que ainda não estão prontas para serem instanciadas e precisam ser estendidas (classes abstratas);
- Conhecemos também os métodos abstratos, que são uma forma de "obrigar" que classes filhas implementem determinado método;
- Vimos que apenas classes abstratas podem ter métodos abstratos;
- Aprendemos os 4 pilares da orientação a objetos:
- Abstração
- Encapsulamento
- Herança
- Polimorfismo
- Vimos que a mesma referência pode se comportar de diversas formas dependendo do contexto.
- Reforçamos nosso conhecimento sobre herança criando diversas novas classes.
- Aprendemos o conceito de uma classe de serviço, que representa uma funcionalidade ao invés de representar um modelo de nosso domínio.
- Entendemos o conceito de herança múltipla e o porquê de muitas linguagens (PHP inclusive) não a permitirem.
- Utilização de
interfaces
. - Aprendemos que no fundo,
interfaces
são apenas classes abstratas que contém apenas métodos abstratos.
- O que são os métodos mágicos no PHP.
- Aprendemos a implementar o
__toString
e o__get
. - Conhecemos as
traits
.
Professor | Aluno |
---|---|
Vinicius Dias | Djoni Bourscheid |