Conhecer != Expressar

__autoload(): Por que não pensaram nisto antes!

2 02UTC Fevereiro 02UTC 2007 · 1 Comentário

Como sabemos a cada chamada a uma classe é preciso incluir o arquivo que contenha o seu código. Uma das maiores dificuldades que encontrei quando comecei a programar em php utilizando recursos de Orientação a Objetos foi exatamente a chatisse que era a inclusão desses arquivos nos programas que instanciavam seus objetos.

Depois de sofrer um pouco incluindo os tais arquivos programa a programa passei a centralizar estas inclusões em um único arquivo, o que facilitou um pouco a rotina, porém quanto maior era o número de classes utilizadas no sistema mais feio ficava este arquivo e maior era a quantidade de arquivos incluídos para nem sempre serem utilizados.

Felizmente agora esse sofrimento chegou ao fim. A partir do PHP 5 tivemos a implementação de uma função simples, de nome curto e intuitivo que mudou nossas vidas: Apresento a vocês o __autoload().

De utilização bem simples a função faz uma inclusão seletiva e, conforme especificação do próprio php.net, ela é automaticamente chamada no caso de você tentar usar uma classe que ainda não foi definida. Ao chamar essa função o ’scripting engine’ tem uma última chance para carregar a classe antes que o PHP falhe com erro.

Supondo que tenha um arquivo que utiliza as seguintes classes: Conexao, Login e Usuarios, e que estas classes estejam em uma pasta de nome ‘classes’, teríamos a seguinte estrutura:

<?php
require_once ‘classes/Conexao.class.php’;
require_once ‘classes/Login.class.php’;
require_once ‘classes/Usuario.class.php’;
$objConn = new Conexao();
$objLogin = new Login();
$objUsuario = new Usuario();
?>

Com o autoload temos algo assim:

<?php
__autoload($class_name){
require_once ‘classes/’. $class_name.’.class.php’;
}
$objConn = new Conexao();
$objLogin = new Login();
$objUsuario = new Usuario();
?>

Pronto, todas suas classes são instanciadas sem você escrever uma única linha a mais.

Com um pouco mais de estudo e em uma estrutura mais organizada é possível tornar esta função muito mais abrangente, porém é um assunto que pretendo abordar em um próximo artigo.

See you…

→ 1 ComentárioCategorias: Geral · Php

Primeiro Artigo

19 19UTC Dezembro 19UTC 2006 · 2 Comentários

Como começar?
Em primeiro lugar é bom informar que sou leitor assíduo de vários blogs, blogs estes que abordam diversos temas e assuntos. Dentre os que mais visito posso destacar os que são da minha área de atuação, desenvolvimento web, área que me proporciona um leque cada vez maior de estudo e conhecimento.
De um tempo pra cá senti a necessidade de escrever algumas palavras, compartilhar o que leio e/ou vivencio profissionalmente e não conheço melhor meio do que este, um Blog. Escrever, de certa forma, sempre foi uma paixão, embora nunca tenha colocado esta paixão a prova desta maneira, e talvez por isso eu tenha sentido esta necessidade.
Quero a partir de agora começar a compartilhar tudo o que posso oferecer, desta forma divido conhecimentos, opiniões e também exercito este lado ‘comunicativo’ que precisa ser trabalhado. Sem contar na ótima oportunidade de conhecer visões diferentes das minhas.
Espero que consiga então suprir as minhas expectativas e acima de tudo oferecer um ambiente aberto e agradavél aos que visitam este espaço.

→ 2 ComentáriosCategorias: Geral