Página Inicial > PHP > PHP – Autoload

PHP – Autoload

Olá, agora falarei um pouco sobre um recurso muito útil do PHP, o Autoload.

Oque é?

O recurso de Autoload nos permite carregar classes ou interfaces que não foram previamente carregadas.

Quando temos diversas classes ou interfaces em uma aplicação, no começo de cada arquivo que necessite do uso de algumas delas, teriamos de fazer includes e requires para cada uma.
O autoload faz justamente este trabalho de forma muito mais fácil, pois não temos que fazer um include ou require para cada classe ou interface manualmente.

Vamos a um exemplo utilizando classes.

Imagine que voce tenha um diretório chamado classes, e nesse diretório voce guarde todas as suas classes, e dentre as classes da sua aplicação, voce tenhas as classes: Pessoa e Cliente. Seguindo este padrão teríamos o seguinte código de autoload.

function __autoload($classe)
{
    require "classes/{$classe}.php";
}

// A classe cliente será carregada pelo __autoload();
$cliente = new Cliente();

// A classe Pessoa será carregada pelo __autoload();
$pessoa = new Pessoa();

Obs: A função autoload recebe um único parâmetro, o nome da classe ou interface que voce necessita carregar.

Agora um exemplo utilizando interface.

Continuando com o diretório classes, mas agora tambem temos um diretório interface, no diretório interface temos a interface IPessoa e a classe Pessoa, implementa essa interface, logo tambem teremos que carregar essa interface.

function __autoload($classe)
{
	$diretorios = array('class', 'interface');

	foreach ( $diretorios as $diretorio ) {

		if ( file_exists($diretorio . '/' . $classe . '.php') ) {
			require $diretorio . '/' . $classe . '.php';
			break;
		}
	}

}

// A classe cliente será carregada pelo __autoload();
$cliente = new Cliente();

// A classe Pessoa será carregada pelo __autoload();
$pessoa = new Pessoa();

Aqui temos um autoload um pouco mais completo. Primeiro definimos um array com os diretórios onde podem estar as classes ou interfaces da aplicação, depois utilizamos um foreach para percorrer o array e verificar se a classe ou interface existe, caso exista carregamos na memória e utilizamos o comando break para evitar que continue buscando.

Como podem ver, o recurso de autoload é muito simple e facilita muito.
Até a próxima!

Categories: PHP Tags:
  1. Nenhum comentário ainda.
  1. Nenhum trackback ainda.

Spam Protection by WP-SpamFree