Como usar a função spl_autoload_register()

Olá Amigos!

Hoje irei abordar 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. 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 dizenbo 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,

Tiago.

Tags:,

Add a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *