Back-End

23 mai, 2007

PHP5 + OOP (Autoloading)

Publicidade

Quem nunca sofreu com aquele monte de includes no começo de um script PHP?

Para aqueles desenvolvedores (maioria, inclusive eu) que implementam uma classe por arquivo e no fim das contas acabam com vários includes por script, existe agora um recurso chamado Autoload, que permite que o próprio PHP inclua dinamicamente as classes de acordo com a necessidade durante o uso.

Para tanto, basta criar a seguinte função no início de cada arquivo:


   1.     function __autoload($class)
   2.     {
   3.  
   4.     require_once($class.".php");
   5.  
   6.     }

A utilização da função é simples, mas cuidado, existem alguns poréns.

Citando meu exemplo que uso o seguinte padrão NomeDaClasse.class.php, ou seja, nome da classe com letra maiúscula seguido de .class e a extensão .php, a função ficaria assim:


   1.     function __autoload($class)
   2.     {
   3.  
   4.     require_once($class.".class.php");
   5.  
   6.     }

Lembrando que o nome da classe e o primeiro nome do arquivo são idênticos (igual ao Java).

Como eu costumo criar todas as classes dentro de um diretório class alocado dentro do diretório includes, é necessário passar o caminho completo de onde a função __autoload deve buscar as classes, ficando assim:

   1.     function __autoload($class)
   2.     {
   3.  
   4.     require_once("includes/class/".$class.".class.php");
   5.  
   6.     }

Mesmo com estes “poréns”, é muito mais fácil e produtivo o uso desta função, pois deixamos de nos preocupar com vários includes, passando este trabalho para o Interpreter do PHP.

A única exigência é que o nome do arquivo que contém a classe deve estar igual ao nome da classe.

Qualquer dúvida basta deixar um comentário abaixo, acessar meu blog www.aguinelopedroso.com ou me contatar pelo e-mail contato@aguinelopedroso.com.

No próximo artigo da série estudaremos Contrutores e Destrutores.