Hoje vamos ver algo simples que pode ser feito no php5 que pouca gente conhece, a função “__autoload “.
Com ela podemos incluir classes seguindo padrão , fazendo que todos os includes do php sejam feitos de forma dinâmica, isso ajuda em:
- Quando mexemos em em algo ou incluímos uma classe nova, não precisamos ficar olhando se foi dado include em todos os outros arquivos.
- Garante que seja incluído arquivos que realmente sejam usados, evitando carregar classes que não estão sendo usadas , evitando assim o uso desnecessária de memoria.
- Ajuda a criar e seguir um padrão para as classes criadas e aonde elas se encontram.
Bem, isso pode ser feito de uma maneira bem simples, para isso primeiro precisamos definir um padrão, vamos colocar todas as nossas classes dentro de um pasta chamada “classes” e vamos definir que quando criarmos o arquivo de uma classe, seguir esse formato “NomeDaClasse.class.php”. Agora que padronizamos podemos criar nossa função:
function __autoload($class_name) {
require_once (‘classe/’.$class_name.’.class.php’);
}
O __autoload, pertence ao conjunto de funções interna dentro do php, toda vez que voce chama uma classe ele chama essa função, nessa caso ele esta pegando o nome da classe e dando o include usando o nome dela, por exemplo:
$a = new Usuario();
O __autoload vai entender que você esta chamado a classe de nome “Usuario”, e vai chama essa função, trocando o $class_name pelo o nome da classe chamada, a string vai ficar assim “classe/Usuario.class.php”, que vai ser o arquivo que ele vai chamar.
Pronto, agora podemos criar um arquivo chamado config.php e nele escrever essa função, e incluir no nosso index principal, assim toda vez que chamarmos uma classe, ele procura e adiciona automaticamente essa classe no include_once, que por sua vez carrega ela na memoria somente quando for chamada, pode nao parecer, mais o ganho de desempenho e bem grande, ainda mais quando se trabalha com sistema de grande porte.
Espero que seja útil essa dica, essa pratica resolve muitos problemas de performasse.
Average Rating