DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

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?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03