Quick Tips: POO no PHP 5 - Parte 2
Olá pessoal estamos aqui novamente para poder falar um pouco mais sobre orientação a objetos no PHP
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
Olá pessoal estamos aqui novamente para poder falar um pouco mais sobre orientação a objetos no PHP.São muitas as novidades no que diz respeito a OO no PHP 5 porém aqui abordarei as principais de forma bastante sucinta.
Escopo de Visibilidade
Foram adicionados alguns modificadores de acessas comuns a OO como private, protected e public e isso para métodos e propriedades. A partir da versão 5 ficou mais simples implementar encapsulamento de métodos e propriedades através destes modificadores:
class MinhaClasse{
private $codigo = null;
public setCodigo($id){
$this->codigo;
}
}
Obs.: Se nenhum escopo for informado o padrão adotado será o public e por questões de compatibilidade a sintaxe var $nome ainda é valida, porém não recomendada.
Construtor Unificado
Agora há no PHP uma método exclusivo para construtor da classe, trata-se do método __construct() que é usado em vez de uma função com o mesmo nome da classe como era no PHP 4. Por motivos de compatibilidade ainda há suporte a esta operação porem recomenda-se o uso desta ultima.
class Carro{
function __construct(){
echo “Carro Construído”;
}
}
Suporte a Destrutores
Podemos agora ter um método chamado automaticamente quando o objeto é destruído. Este método é o __destruct().
class Carro{
function __destruct(){
echo “Carro Destruído”;
}
}
Interfaces
Foram introduzidas no PHP 5 em lugar da herança múltipla, elas dão as classes a habilidade de atender a mais de um requisito no modelo OO. Cada classe pode herdar somente de uma classe, porém podem implementar quantas interfaces quiser e o melhor há também o suporte a herança entre as interfaces. Entenda a interface como sendo uma espécie de contrato, de regra que toda a classe que a implementar deve seguir, com isso podemos programar em cima de uma interface e não de uma implementação concreta, aumentando assim a abstração e diminuindo o acoplamento.
interface Operacao{
function executar();
}
class Somar implements Operação{
public $n1;
public $n2;
function executar(){
return $this->n1+$this->n2;
}
}
class Subtrair implements Operação{
public $n1;
public $n2;
function executar(){
return $this->n1-$this->n2;
}
}
Operador instanceof
No PHP 4 existia uma função chamada is_a() que verificava se o objeto era uma ou pertencia a uma determinada hierarquia de classe. Agora no PHP 5 utilizamos a função instanceof para realizar esta verificação
if ($Obj instanceof Pessoa) {
echo “O Objeto verificado e uma Pessoa”;
}
Métodos Finais
A palavra reservada final pode ser adicionada a alguns métodos e com isso impedir que esses métodos sejam sobrescritos em uma classe descendente.
class Cachorro{
final function Latir(){
echo “Cachorro Latindo”;
}
}
Este método não poderá ser sobrescrito numa classe descendente.
Classes Finais
Da mesma maneira que um método uma classe pode ser declarada como final impedindo assim que seja herdada dentro do modelo OO.
final class Carro{
}
class CarroNacional extends Carro{
}
O código acima geraria um erro, pois a classe Carro não pode ser herdada.
Bem pessoal, eu fico por aqui. Na próximo tips veremos mais sobre POO no PHP.
Abs!!
Rodrigo Carreiro Mourão
Gestor de TI com especialização em gerência de projetos (PMI) e Governança de TI (ITIL e COBIT) pelo instituto Infnet. Embarcadero MVP e Instrutor certificado pela Borland. Graduando-se em Gestão de TI focada em negócios. Grande entusiasta do desenvolvimento orientado a objetos, padrões de projetos,...



