Desenvolvimento - PHP
PHP 5 - Construtores e Destrutores
Num mini-artigo simples e de fácil compreensão, irei tentar explicar algumas particularidades que estão sendo adicionadas ao PHP 5.
por Marcelo Pereira Fonseca da SilvaAssunto que está sendo muito discutido em todo o mundo.
Basicamente não vou fazer aqui um super artigo tentando passar tudo sobre Orientação à Objeto, nem sobre as vantagens disso, ou ainda sair adicionando códigos "estranhos" que muitos não iriam entender.
Antes de começar a falar sobre o assunto do artigo, explico os motivos pelo qual estou escrevendo-o.
Creio eu que haja uma deficiência em apresentar os novos features de OO no PHP5 se existe hoje uma boa parcela de programadores que ainda não iniciaram em Orientação à Objeto.
Então irei explicar alguns códigos que tenho visto em PHP5 voltados à OO e tentar explicar qual a diferença que existe hoje no PHP4.
Método Construtor
Na versão 4 do PHP geralmente dá-se um mesmo nome da classe para um método fazendo com que ele seja executado quando a instanciamos.
Para quem não entendeu imagine a seguinte situação:
Iremos construir uma pequena classe chamada "Pao".
<?php Class Pao { /** * adiciona itens ao nosso pao */ var $_addItem; /** * Este pao() seria o nosso método construtor * Nota: uma função dentro de uma classe recebe o nome de método. */ function Pao() { $this->add_item = "manteiga"; } } ?>
Como vimos no código acima temos a classe Pao e o método Pao ao dar o mesmo nome da classe ao método, automaticamente temos um delicioso pao com manteiga.
E quando isso acontece ?
Quando temos uma porção de código parecida com a que segue:
<?php $objeto = new Pao(); ?>
No Zend Engine 2 há um método para fazer isso tudo, sendo assim, não há a necessidade de se colocar um método com o mesmo nome da função.
Nosso mais novo amigo se chama __construct()
Imaginemos agora uma outra classe chamada "casa" e vamos ver qual a diferença do código passado acima.
<?php Class Casa { /** * Define itens para a nossa casa */ var item; /** * Esta é a forma de um método construtor * no PHP5. */ function __construct() { $this->item = "paredes"; } } ?>
e então ao instanciar a nossa classe ..
<?php $home_sweet_home = new Casa(); ?>ele chama este método e já adiciona paredes
Método Destrutor
O PHP 5 também traz um outro método chamado método destrutor representado da seguinte maneira
__destruct()
Seu uso pode ser observado no seguinte exemplo:
<?php Class Marcelo { var $variable; var $add_body; /** * Método construtor */ function __construct() { $this->variable = "do anything"; } /** * Método que cria meu corpo.. * */ function make_body($part) { $this->add_body = $part; } function __destruct() { echo "eu sou um método destrutor"; } } ?>
Um simples uso disso seria:
$myself = new Marcelo(); $myself->make_body("cabeça"); $myself->make_body("pé"); $myself->make_body("asas"); // i go to fly :)
Espero ter ajudado mostrando um dos novos recursos que estarão no PHP5
Fonte: http://www.phpvolcano.com
Até o próximo artigo.