Arquitetura de Software com CodeIgniter – Introdução
Arquiteturas de desenvolvimento de software são essenciais para garantir a manutenibilidade e produtividade de qualquer sistema e, unindo-as com design patterns, que são soluções reutilizáveis a problemas comuns encontrados em projetos de software, pode-se ter uma estrutura bem definida e altamente reutilizável. Na linguagem PHP arquiteturas de software também são de extrema importância e esta série de artigos visa a definição de uma arquitetura de software baseada no framework CodeIgniter, onde serão abordados os passos necessários para se definir a arquitetura, com todos os frameworks escolhidos para compô-la, e ao final será feita a elaboração de um sistema de controle de tarefas, para exemplificar o uso da arquitetura.
Frameworks Escolhidos
Um framework nada mais é do que uma estrutura de software que contém elementos comuns e não-específicos dos sistemas, componentes como helpers HTML, ferramentas de autenticação e validação e geradores de PDF. Seguindo o conceito de Don’t Repeat Yourself (DRY), que prega o reaproveitamento de estruturas já prontas para se trabalhar, os frameworks se tornaram essenciais nesta arquitetura, e unindo cada um deles pode-se fornecer uma ótima estrutura de trabalho. Estes frameworks escolhidos são:
- CodeIgniter
- O CodeIgniter foi escolhido para fornecer as camadas MVC e o controle das requisições (front_controller, rotas etc.). Existiam outras escolhas como CakePHP ou ZendFramework, porém acredito que o mais fácil de aprender e o mais fácil de se extender e customizar é o CodeIgniter. A partir dele, algumas customizações foram feitas para manter URLs amigáveis e a View e o Model dele foram modificados, graças aos frameworks descritos abaixo.
- Smarty
- Smarty é um dos principais e mais robustos frameworks de templates para a linguagem PHP. Ele foi escolhido por conter uma sintaxe limpa e simples para as Views, por fornecer capacidades de cache (o CodeIgniter também provia isso para a View padrão dele) e por não conter uma linha de código PHP em seus templates. A partir de algumas configurações, ele é carregado por todos os Controllers que extenderem a classe “Controller” do CodeIgniter. Equipes que contenham designers ganham muitas vantagens ao utilizar o Smarty, pois eles necessitam apenas aprender a linguagem de template do Smarty, que é muito mais fácil do que o PHP em si, além de fornecer uma independência entre programadores e designers.
- Doctrine
- Doctrine é um framework para persistência de dados que se utiliza de mapeamento objeto relacional. Ele é o framework para PHP que mais se assemelha ao Hibernate do Java, e possui uma linguagem customizada para consultas, o que eles chamam de Doctrine Query Language (DQL). Existem ótimas soluções para persistência no PHP, como Lumine ou EZPDO, mas o Doctrine foi escolhido por possuir uma comunidade grande e ativa de desenvolvimento e pela robustez e consistência de suas funcionalidades. As classes Models que o Doctrine gera substituem o Model padrão do CodeIgniter.
A partir desses frameworks, o desenvolvimento das aplicações se mostrou mais ágil, prático e organizado, fornecendo com poucas configurações um método de desenvolvimento que pode ser utilizado em diversas aplicações pequenas e médias.
Isso encerra o artigo de hoje, no próximo artigo falarei sobre os Design Patterns que a arquitetura implementa, alguns já disponibilizados pelo CodeIgniter, outros customizados para se conseguir mais organização de código e uma maior abstração entre as camadas. Até mais.
Codeignitor + smarty + doctrine | Hugo Mastromauro
Postado em 22/12/2009 às 13:19[...] Vale a pena dar uma lida neste artigo, ele está dividido em 4 etapas. Categoria: Arquitetura de Software, CodeIgnitor, Design Patterns, Frameworks, PHP, Smarty Template Tags: CodeIgnitor, Design Patterns, Frameworks, smarty Cancelar [...]