Programar de forma Hierárquica
Normalmente, um programador que começa a utilizar PHP estrutura suas primeiras aplicações de forma sequencial. Basicamente cria um diretório e vai jogando tudo lá dentro. Aos poucos, percebe que a estratégia adotada vai ficando confusa, comaça a aparecer alguns arquivos chamados index2.php, index3.php, salvar46.php, etc. e fica cada vez mais difícil achar aquilo que queria. Este artigo trata de algumas técnicas e estratégias para tornar o desenvolvimento de uma aplicação mais simples em termos de manutenção e, principalmente, expansão.
A caminhada de um bom programador passa por alguns tropeços como estes, mas a conquista ocorre quando há vontade de mudar.
Para começar, estruturar os diretórios da aplicação de forma hierárquica é fundamental e impactará em todo o desenvolvimento da mesma. Organizar e padronizar onde ficarão as classes, onde ficarão as folhas de estilos, onde ficarão as imagens, onde ficarão os scripts acessíveis na Web é uma tarefa aparentemente simples, mas pode se tornar bastante complexa em alguns cenários. Por exemplo, se o seu sistema terá suporte à internacionalização ou não, são detalhes que precisam ser tomados de antemão, já que reestruturar seu sistema para suportar isso é algo bem trabalhoso.
Um exemplo de como estruturar a árvore de diretórios é a seguinte:
Os nomes dos diretórios são autoexplicativos. Algumas observações importantes: o diretório de classes pode ser subdividido hierarquicamente. O nível hierárquico não precisa ser, necessariamente, em apenas 2 níveis de diretórios. Com o lançamento do PHP 5.3, veio o suporte a namespaces, que possibilita montar funções de autoload mais sofisticadas, e baseadas na estrutura hierárquica de diretórios (semelhante à linguagem Java, com utilização de pacotes).
De forma semelhante, o diretório de módulos (diretório onde ficam os arquivos acessíveis pela Web) pode ser dividido hierarquicamente. Por exemplo, existir um módulo chamado "categorias", que possui os arquivos "index.php", "exibir.php", "inserir.php", "alterar.php" e "excluir.php" (nomes auto-explicativos). Dentro deste módulo, pode existir um submódulo chamado "livros". Neste submódulo, poderiam ter arquivos com os mesmos nomes que o anterior, só que trabalhariam com os livros de determinada "categoria".
Criar um diretório de temas é interessante para aplicações que pretendem dar este tipo de suporte. É, no entanto, uma boa prática separar código HTML de estilos, independentemente da questão do suporte a múltiplos temas.
A caminhada de um bom programador passa por alguns tropeços como estes, mas a conquista ocorre quando há vontade de mudar.
Para começar, estruturar os diretórios da aplicação de forma hierárquica é fundamental e impactará em todo o desenvolvimento da mesma. Organizar e padronizar onde ficarão as classes, onde ficarão as folhas de estilos, onde ficarão as imagens, onde ficarão os scripts acessíveis na Web é uma tarefa aparentemente simples, mas pode se tornar bastante complexa em alguns cenários. Por exemplo, se o seu sistema terá suporte à internacionalização ou não, são detalhes que precisam ser tomados de antemão, já que reestruturar seu sistema para suportar isso é algo bem trabalhoso.
Um exemplo de como estruturar a árvore de diretórios é a seguinte:
- /sistema
- /classes
- /modelo
- /visao
- /controle
- /autenticacao
- ...
- /temas
- tema1
- /imagens
- tema2
- /imagens
- ...
- tema1
- /imagens
- /icones
- /fotos
- ...
- /javascript
- /modulos
- modulo1
- submodulo1
- modulo2
- ...
- modulo1
- /classes
Os nomes dos diretórios são autoexplicativos. Algumas observações importantes: o diretório de classes pode ser subdividido hierarquicamente. O nível hierárquico não precisa ser, necessariamente, em apenas 2 níveis de diretórios. Com o lançamento do PHP 5.3, veio o suporte a namespaces, que possibilita montar funções de autoload mais sofisticadas, e baseadas na estrutura hierárquica de diretórios (semelhante à linguagem Java, com utilização de pacotes).
De forma semelhante, o diretório de módulos (diretório onde ficam os arquivos acessíveis pela Web) pode ser dividido hierarquicamente. Por exemplo, existir um módulo chamado "categorias", que possui os arquivos "index.php", "exibir.php", "inserir.php", "alterar.php" e "excluir.php" (nomes auto-explicativos). Dentro deste módulo, pode existir um submódulo chamado "livros". Neste submódulo, poderiam ter arquivos com os mesmos nomes que o anterior, só que trabalhariam com os livros de determinada "categoria".
Criar um diretório de temas é interessante para aplicações que pretendem dar este tipo de suporte. É, no entanto, uma boa prática separar código HTML de estilos, independentemente da questão do suporte a múltiplos temas.

em 24/11/2009 7:54pm

Muitas vezes desejamos ver logo o resultado de nossas idéias ou necessidades e não paramos para pensar em como chegar ao resultado: não planejamos. E isso é, inclusive, uma característica cultural do brasileiro.