Função autoload no PHP

A função autoload é utilizada no PHP para fazer o carregamento automático das classes.

Sempre que desejarmos criar um objeto, temos que ter obrigatoriamente a classe responsável pela criação do objeto carregada na memória, caso contrário o PHP retornará um erro. Para carregar classes na memória podemos carregar todas as classes no inicio do documento utilizando o comando include_once ou com o mesmo comando imediatamente antes de instanciar um objeto.

A função autoload é utilizada no PHP para fazer o carregamento automático das classes

O grande problema é que o include_once carrega na memória as classes mesmo que você não use. Muitas vezes uma classe só é utilizada se o usuário fizer alguma requisição no sistema, um determinado passo, ou se o usuário der um clique em um botão, etc. Para resolver e simplificar tal procedimento o PHP disponibiliza a função de “carregamento automático”, que é a função autoload, que carrega a classe apenas quando um objeto dessa classe for criada, tornando o processo de carregamento das classes para a memória dinâmico.

Veja abaixo um exemplo simples:
classe funcionario

< ? php
class Funcionario
{
    private $Codigo;
    private $Nome;
    private $Salario;
    //função para “setar” um valor no atributo salario
    function SetSalario($Salario)
    {
        //antes de passar o valor do salario verificamos se o mesmo e um numero e positivo, se sim, passamos o valor para o atributo
        if (is_numeric($Salario) and ($Salario > 0))
        {
            $this->Salario = $Salario;
        }
    }

    function SetNome($Nome)
    {
    	$this->Nome = $Nome;
    }

    function SetCodigo($Codigo)
    {
    	$this->Codigo = $Codigo;
    }

    function Mostrar()
    {
    echo "O nome é: {$this->Nome}<br>";
    echo "O salário é: R\$ {$this->Salario}<br>";
    echo "O Código é: {$this->Codigo}";
    }

}
?>

arquivo autoload

< ? php
// funcao que carrega as classes automaticamente
function __autoload($classe)
{
	//busca dentro da pasta classes a classe necessaria...
	include_once "classes/{$classe}.class.php";
}

//criando um objeto pessoa
$funcionario = new Funcionario();
$funcionario -> SetCodigo(789);
$funcionario -> SetNome ('Mario Andrade');
$funcionario -> SetSalario (2500);
$funcionario -> Mostrar();
?>

Comentários

Uma resposta para “Função autoload no PHP”

  1. Gostei, simples e objetivo. O __autoload te permite criar um objeto sem ter que carregar essa classe na memória de forma prévia. E sim quando for solicitada pelo objeto.