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.
a idéia é usar MVC, no entanto, acredito que os Frameworks lhe deixam limitados a ele.Interessante escrever o próprio Framework, fica mais ao seu gosto.
01/01/2013 5:35pm
(~12 anos atrás)
para ajudar eu faço um mapa mental com o mindmeister.com e coloco em ordem os ítens do site.
09/12/2010 8:06pm
(~14 anos atrás)
para ajudar eu faço um mapa mental com o mindmeister.com e coloco em ordem os ítens do site.
09/12/2010 8:06pm
(~14 anos atrás)
Legal..
Recomendo a quem quer esmiuçar o MVC sob a perspectiva de um Gerenciador de Conteúdo estude a estrutura do Joomla e seus módulos e componentes.
Recomendo a quem quer esmiuçar o MVC sob a perspectiva de um Gerenciador de Conteúdo estude a estrutura do Joomla e seus módulos e componentes.
09/12/2010 3:51pm
(~14 anos atrás)
PARABÉNS E COMO O COLEGA FALOU, ME LEMBRA OS MEUS PRIMEIROS PROJETOS NA FACULDADE.
04/12/2010 6:22pm
(~14 anos atrás)
Muito bacana. E é engraçado quando eu li as suas primeiras palavras e lembrei dos meus primeiros sistemas, meses atrás, com absolutamente tudo jogado numa pasta qualquer.
17/11/2010 12:27am
(~14 anos atrás)
Obrigado!!!!