Autoload de classes no PHP (carregamento automáticos de arquivos)
- Detalhes
- Angelo Luis Ferreira
- PHP
- Acessos: 5633
Neste tutorial vamos mostrar como incluir automaticamente vários arquivos de classe através do método autoloading do PHP. Este recurso elimina um dos maiores contratempos dos desenvolvedores de PHP que utilizam POO que é escrever uma longa lista de "includes" ou "requires" no início de cada script (um para cada classe).
Obs.: A declaração require é idêntica a include exceto que em caso de falha também produzirá um erro fatal de nível E_COMPILE_ERROR
. Em outras palavras, ele parará o script enquanto que o include apenas emitirá um alerta (E_WARNING
) permitindo que o script continue.
POO (Programação Orientada a Objetos) é um paradigma de programação baseado no conceito de "objetos", que podem conter dados na forma de campos, também conhecidos como atributos, e códigos, na forma de procedimentos, também conhecidos como métodos. (Wikiédia)
Para exemplificarmos a utilização do autoloading de classes no PHP, vamos criar uma estrutura simples com várias classes como mostra a figura abaixo:
Sem a utilização do autoloading, teríamos que incluir todas as classes em cada script, ficando desta forma:
a) Utilizando require:
b) Utilizando include:
Utilizando o autoloading no PHP
a) Com "require":
spl_autoload_register(function ($class_name) {
require $class_name . '.php';
});
b) Com "include":
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
});
Onde: a função spl_autoload_register() registra qualquer número de autoloaders, permitindo que classes e interfaces sejam automaticamente carregadas se elas não ainda não foram definidas.
Obs.1: A função spl_autoload_register() só é permitida para versões superiores a versão 5.0 do PHP.
Obs.2: É importante salientar a necessidade de informar o caminho onde estão os arquivos das classes que serão carregadas.
Veja abaixo como fica o nosso exemplo:
a) Com "require":
b) Com "include":
Obs.: Note que definimos o caminho onde estão os arquivos a serem carregados (pasta "classes") e o formato dos arquivos que queremos carregar.
Após carregar os arquivos, é possível então criar, ou melhor, instanciar os objetos que foram definidos pelas suas respectivas classes.
Nota do Autor: A utilização do recurso "autoloading classes" não é unânime entre os programadores de PHP... Mas isso é uma outra história!
Documentação Oficial
1. [Autoloading PHP] » Manual sobre PDO -Autoloading Classes.
2. [spl_autoload_register] » Manual sobre PDO - spl_autoload_register.
3. [require] » Manual sobre PDO - require.
4. [include] » Manual sobre PDO - include.
O anúncio abaixo ajuda manter o Portal Visual Dicas