Como usar a função spl_autoload_register
Hoje irei abordar como usar a função spl_autoload_register para carregar classes automaticamente no PHP. Uma função muito útil do PHP, ela faz o autoload automático de classes, ou seja, ela realiza o include dinâmico dos arquivos com as classes.
A função é spl_autoload_register(), ela funciona de maneira muito simples: toda vez que você chamar uma classe pelo operador new ou que o PHP detecte que você está serializando um objeto, obviamente pela função serialize(), ela entre em ação.
Como usar a função spl_autoload_register
Primeiramente, veja o exemplo abaixo:
class UmaClasseQualquer { public function __construct() { spl_autoload_register(array($this, 'loader')); } private static loader($class) { include $class . '.php'; } }
Nela temos o método autoloader() que recebe como parâmetro $class, note que em nenhum momento estou chamando este método e muito menos passando um nome de classe como parâmetro para ele.
No entanto quando chamo a função sql_autoload_register estou informando um array() como parâmetro e nele estou dizendo que na instância do objeto ($this) existe o método “loader” que irá carregar as classes dinâmicamente. Veja que na implementação do método loader eu faço o include da chamada $class.
O que irá acontecer é que internamente o PHP sempre chamará a função sql_autoload_register como última tentativa de carregar um objeto, no nosso caso ela já está sendo chamada de cara no construtor da nossa classe, e estamos dizendo basicamente: “PHP, toda vez que você precisar de uma classe chame o método loader que ele irá buscá-la para você”.
Simples não?
Abraços!
Boa tarde professor. Qual metodo esta chamando as classes dinamicamenrte?
Olá! É o método loader.
Nele podemos apontar em qual diretório estão as classes.