O que é a função __autoload?
A função autoload é utilizada no PHP para fazer o carregamento automático das classes
Como assim?
Bom imaginemos, se você está programando em PHP5 + OOP, seu sistema certamente vai conter varias classes em varios arquivos. Certo?, agora pense dar include nesses arquivos todos, pensando nisso o PHP apartir de sua versão 5 incrementou essa função.
Modo de utilizar?
Essa parte é de sua criatividade, mas deve seguir algumas convenções por exemplo, a função tem que ficar visivel em todo sistema.
Exemplo 1:
(arquivo index.php)
Código PHP:
function __autoload($name) {
require_once $name'.php';
}
No exemplo acima estamos supondo que todos os arquivos estão na raiz de nosso projeto junto com o arquivo index.php, que será visivel em todo sistema
Exemplo 2:
(arquivo index.php)
Código PHP:
function __autoload($name) {
require_once 'classe/'.$name'.php';
}
No exemplo acima estamos dizendo que todos os arquivo estão na pasta classe/
Exemplo 3:
(arquivo application/index.php)
Código PHP:
function __autoload($name) {
$name = implode('/', explode('_', $name));
require_once strtolower($name).'.php';
}
No exemplo acima já complicamos um pouco mais, mas pensando pela logica é simples. Usamos as funções implode e explode, pra fazer um jogo com o nome da classe e o diretorio em que ela se encontra, supondo que nos queremos fazer uma arquitetura mvc. neste caso teriamos as seguintes pastas..
|-application
|--controller
|--model
|--view
|-template
nesse caso pra função funcionar perfeitamento nos devemos clicar as classe com o nome da pasta mais o nome do arquivo mais ou menos assim.
arquivo (Pessoa.php)
Código PHP:
class Controller_Pessoa
{
}
deste modo acima teria que salvar o arquivo em application/controller/pessoa.php
Assim a função autoload iria juntar a string com '/' da explosao dos '_', deste modo a função __autoload seria dinamica e consistente com o escopo do projeto.
Espero que tenham gostado
Créditos Flavio Hernandes