Nessa aula você irá entender criar classes em PHP e como utilizar os principais recursos da programação orientada a objetos em seus projetos de software. Essa linguagem inicialmente não foi pensada como uma linguagem orientada a objetos assim como o Java. No entanto, com o passar do tempo essa linguagem cresceu e o conceito de orientação a objetos foi implementado e pode ser utilizado completamente.
Um ponto importante a ser considerado é que para entender o conteúdo dessa aula é necessário ter conhecimento em Programação Orientada a Objetos. Esse conteúdo pode ser acessado aqui.
Declarando classes em PHP
Para declarar uma classe em PHP devemos utilizar a seguinte sintaxe:
class 'nomeDaClasse'{
// conteúdo
}
Dentro de cada classe podemos ter atributos:
class 'nomeDaClasse'{
$atributo1;
$atributo2;
function nomeDoMetodo1(){
// faça o que quiser
}
}
Lembre-se que podemos e devemos utilizar o conceito de encapsulamento dentro de nossas classes. Portanto, modificadores de acesso podem ser utilizados:
class 'nomeDaClasse'{
public $atributo1;
private $atributo2;
public function nomeDoMetodo1(){
// faça o que quiser
}
}
Herança em PHP
A herança é um recurso muito importante que representa a possibilidade de estender o comportamento de um objeto sem precisar modificá-lo. Por exemplo, se eu tenho uma classe chamada “animal” posso ter várias classes que estendem essa classe e implementam atributos e métodos específicos. Em PHP podemos usar a palavra reservada Extends:
class Pai(){
$atributo1;
}
class Filha extends pai( ){
// classe filha
}
Como usar o Polimorfismo em PHP
O polimorfismo (de forma simplificada) é a capacidade de aceitar que dois ou mais métodos possuam o mesmo, logicamente que para isso acontecer é necessário que existam diferenças entre eles que são capazes de identificá-los (por exemplo, quantidade de parâmetros, tipo dos parâmetros etc.).
Para utilizar o polimorfismo em PHP e sobrescrever atributos e métodos precisamos considerar os dois tipos de polimorfismo existentes: vertical e horizontal. O polimorfismo horizontal ocorre dentro da mesma classe e sobrescreve o comportamento de um método, veja o exemplo:
Polimorfismo Horizontal:
class 'nomeDaClasse'{
public $atributo1;
private $atributo2;
public function nomeDoMetodo1(){
// faça o que quiser
}
public function nomeDoMetodo1($param1){
// faça o que quiser
}
}
O Polimorfismo Vertical acontece quando existe uma herança envolvida, ou seja, o método sobrescrito é aquele que está na classe pai. Veja um exemplo:
class Pai(){
$atributo1;
public function nomeDoMetodo1(){
// faça o que quiser
}
}
class Filha extends pai( ){
public function nomeDoMetodo1(){
// esse metodo sobrescreve o metodo1 da classe pai
}
}