PHP: Utilizando o método __autoload()

Palavras-chave: PHP5, Orientação a objetos, carregar, classes, __autoload

Quando programamos aplicações orientadas a objetos um dos aspectos importantes a se observar é a responsabilidade e a orientação à assunto. Isto quer dizer que cada classe deve ser responsável por um determinado assunto e ser responsável por ele, ou seja, protejer os aspectos internos de implementação.

Dessa forma, facilmente criamos aplicações com dezenas de classes, uma vez que cada classe irá cuidar de um aspecto bem específico. Teremos classes para botões, janelas, conexões com o banco de dados, etc.

Nestes casos, é comum encontrar no início de um arquivo, vários “include_once”, responsáveis por carregar as inúmeras classes necessárias no script, como:

<?php
include_once 'classes/Botao.class.php';
include_once 'classes/Cliente.class.php';
include_once 'classes/Fornecedor.class.php';

// ... código ...

?>

Em muitos casos, corremos inclusive o erro de esquecer um include, tantas são as classes utilizadas pelo nosso sistema. Para facilitar o carregamento das classes, o PHP5 introduz o método __autoload().

O método __autoload() é executado automaticamente na primeira vez que uma classe é instanciada. Nele podemos escrever algumas tarefas automáticas como o próprio carregamento da classe em memória.

<?php
function __autoload($classe)
{
   include_once "classes/{$classe}.class.php";
}

// ... código ...

new Cliente;

new Fornecedor;

?>

Desta forma, sempre que uma classe for instanciada pela primeira vez, o método __autoload é executado e a classe correspondente é carregada.

This entry was posted in PHP. Bookmark the permalink.

5 Responses to PHP: Utilizando o método __autoload()

  1. Dependendo da implementação, também pode-se incluir determinadas classes em scripts em que elas não são necessárias, mais um motivo pra definir __autoload… Só uma observação: não é um método, mas sim uma função especial.

  2. AccefVek-online says:

    bom comeco

  3. É muito bom usar o autoload, evita requires desnecessários. Aprendam e sempre busquem mais conhecimento!

  4. Ari THomazini says:

    Não entendi onde eu devo colocar o autoload…

    SOu novo em PHP e estou enfrentando um problema com session, que acredito que o autoload resolva…

Leave a Reply

Your email address will not be published. Required fields are marked *