alexmontoanelli

a place to have some fun..

Dicas função __autoload()

Olá,

Pra quem não sabe, existe um método ‘mágico’ usado como ultima tentativa para carregar uma classe antes que o PHP retorne um erro.

Esse método tem a seguinte assinatura:

__autoload($className);

O argumento de entrada recebido é o nome da classe que o Interpretador esta procurando.

Então se sempre usarmos as boas práticas e tivermos nossos arquivos e classes em uma Estrutura hierárquica bem organizado podemos utilizar o método a nosso favor, e dar adeus a requires_onces em nossas classe, veja o exemplo abaixo:

Diretório: Unetvale:
Arquivo: Core.php -> Classe: Unetvale_Core
Arquivo: Auth.php -> Class: Unetvale_Auth
Arquivo: Auth/Lib/Ldap.php -> Class: Unetvale_Auth_Lib_Ldap

function __autoload($className){
 
     if (ereg('_', $className)) {
 
       $file = null;
       $path = str_replace('_', DIRECTORY_SEPARATOR, $className);
       $file = $path . '.php';
 
       require_once($file);
 
     }
 
}

Pronto, basta ter o include_path apontando tambem para os diretorios onde temos nossa bibliotecas e esta tudo resolvido.

abraços

December 6th, 2007 by alexm