Quick Tips: POO no PHP 5 - Parte 3
Olá pessoal, vamos ver mais alguns novos recursos de OO no PHP 5.
Olá pessoal, vamos ver mais alguns novos recursos de OO no PHP 5.
Clonagem de Objetos
Com o novo modelo OO aquele comportamento indevido de copias de objetos foi corrigido, porém há casos em que se faz necessário a copias de determinados objetos para atender a um requisito de seu modelo. Para esses casos foi adicionada ao PHP 5 a função clone e foi permitido também adicionar uma função __clone() que será invocada todas as vezes que seu objeto for clonado (após as propriedades terem sido copiadas do objeto original).
class Aluno{
function __clone(){
echo “Objeto clonado”;
}
}
$Alunos = new Aluno;
$CopiaAlunos = clone $Alunos;
Constantes de Classes
As classes agora podem possuir constantes que são acessadas através da própria classe.
class Mensagens{
const Sucesso = “Operação realizada com Sucesso”;
const Erro = “Um erro ocorreu nesta operação”;
}
echo Mensagens::Sucesso;
echo Mensagens::Erro;
Métodos Estáticos
Agora é possível adicionar métodos estáticos a suas classes e estes serão acessados a partir da classe e não do objeto, isto facilita a implementação de alguns padrões de projeto como é o caso do Singleton por exemplo.
class Conexao{
static function GetConexao(){
echo “Conexão realizada”;
}
}
Conexão::GetConexao();
Propriedades Estáticas
Assim como nos métodos podemos ter agora propriedades estáticas, isto é, propriedades que podem ser acessadas diretamente da classe sem a necessidade de se instanciar o objeto.
class Conexao{
static private $conection = null;
static function GetConexao(){
retun self::$conection;
}
}
Conexão::GetConexao();
Classes Abstratas
Uma classe dita como abstrata não pode ser implementada, porem podem perfeitamente ser herdadas.
abstract class ClasseBase{
}
$base = new ClasseBase;
O código acima geraria um erro pois ClasseBase não pode ser instanciada.
Métodos Abstratos
Assim como no caso das classes podemos ter métodos abstratos, isto é, que não possuem definição na classe que o contem ficando isso a cargo da classe que o sobrescreve. Uma classe que possua um método abstrato deve ser declarada como abstrata.
abstract class Base{
abstract function Executar();
}
Hints de Classe
Todos sabem que o PHP é fracamente tipado, porem há um recurso que foi adicionado ao PHP 5 que permiti fazer a verificação do tipo da classe nos parâmetros das funções, são as chamadas Dicas de Tipos de classe que geram um erro caso o parâmetro passado não seja do tipo especificado na dica de tipo de classe.
function Falar(SerHumano $Obj){
}
Onde na função acima SerHumano seja uma classe definida previamente e a função falar só ira aceitar como parâmetro objetos que sejam desta classe ou herdem da mesma.
Valeu pessoal, até a próxima quick tips !!
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,...
O que você achou deste post?
Cursos relacionados
Publicidade



