Este artigo vem a complementar um outro que escrevi sobre orientação a objeto nos moldes do PHP4. Dessa vez venho trazendo o que houve de mudanças para o PHP5 com duas classes que exemplificam bem essas mudanças.
A forma de se criar um construtor na sintaxe antiga do PHP (v4) era simplesmente criando uma função (método) com o nome da classe. A partir desse momento o programador não deveria se preocupar mais, seu construtor já teria sido criado sem nenhum problema. Ainda é assim, por motivos de compatibilidade com códigos escritos para versões anteriores, porém a coisa mudou um pouquinho.
No PHP5 temos que criar uma função de nome '__construct' para que tenhamos um construtor no novo padrão da linguagem.
Já para os destrutores, em PHP4, não conheço realmente nenhum padrão para isso, estrutura que o PHP5 já implementa com a criação de um método '__destruct' que servirá para esse propósito.
Visibilidade de métodos e atributos
O PHP5 instituiu as palavras reservadas public, private e protected para definir o grau de visibilidade dos métodos e atributos de classes e cada um deles com suas particularidades. Quem já estudou Java deve ter se familiarizado com elas, quem vêm do Delphi conhece-as também, com outra forma de uso, é claro.
Todas as linguagens que têm uma orientação a objeto robusta têm seus níveis de visibilidade bem definidos e é essa vantagem que agora vou explicitar. Vamos à explicação de cada uma:
public: palavra reservada que deixa que o método ou atributo seja manipulável em todos os momentos do ciclo de vida da classe.
private: palavra reservada que esconde um atributo ou método do meio externo a ela própria, não deixando que seja vista nem pelas classes que são extensões de outras.
protected: palavra reservada que esconde um atributo ou método do meio externo a ele, exceto as classes que a derivam.
Agora que estão explicadas as três, vamos em frente!
[1] Comentário enviado por removido em 18/08/2006 - 08:58h
Parabéns collapse pelo artigo bem explicado...
Acredito que ajudará iniciantes, e aqueles que ainda têm medo de migrar para o PHP5, a utillizarem cada vez mais essa versão...
E tomara que muita coisa melhore nas próximas versões do PHP. Como a manipulação de eventos (dito por você), e tipagem forte de atributos/métodos...
Uma outra funcionalidade que acho interessante seria a possibilidade de se criar propriedades, como o C# (DotNet).
[2] Comentário enviado por F4xl em 19/08/2006 - 01:07h
Muito bom o artigo, Evaldo!
Principalmente para quem está iniciando os estudos em PHP. Um comentário que eu gostaria de ler aqui é sobre como o PHP vai se comportar no mercado concorrendo com a plataforma .NET da Microsoft, uma vez que todos parecem querer migrar para ela.
[3] Comentário enviado por evandrofisico em 19/08/2006 - 20:52h
Para fazer um destructor em php4 é necessária uma pequena gambiarra, colocando dentro da funcao constructor um register_shutdown_function(array(&$this, 'quit'))
onde quit é o nome da funcao a ser executada antes do fim do script