CodeIgniter: framework PHP ágil, robusto e de alta performance
14 de julho de 2008 4 comentários
Para quem programa/trabalha com PHP - e outras linguagens de programação, também -, sabe que o tempo de desenvolvimento é uma das coisas importantes a se considerar em um projeto. De igual maneira, deve-se fazer web sites e aplicações web que sejam confiáveis e seguros, ao mesmo tempo que possuam boa performance e sejam rápidos.
É possível conseguir estes objetivos programando “na unha” - jargão conhecido entre os programadores - ou, como diria o colega Paulo Faustino, fazer um “PHP de raiz”. Entretanto, isso possui inúmeras desvantagens como, só para citar algumas:
- Tempo “gasto” devido à preocupação com validações e segurança, em geral;
- Preocupações com o “estilo” da codificação, haja vista o fato de eventuais compatibilidades entre servidores e versões do PHP;
- Documentação;
- Escalabilidade;
- Combinar, de forma eficiente, leveza da aplicação e performance.
Para sanar, ou, pelo menos, amenizar, a maioria das questões apresentadas e outras mais, muitos programadores optam por utilizam um framework. Digo “um” porque, apesar da existência de inúmeros frameworks PHP, gratuitos ou não, o mais comum é o programador fazer alguns testes e escolher um só para trabalhar; escolher aquele que é mais consonante com sua metodologia e prática de programação - no caso, programação PHP.
Depois de conhecer e estudar a respeito de alguns frameworks, escolhi um que, por enquanto e a meu ver, é o melhor framework PHP gratuito: CodeIgniter.
Sobre o CodeIgniter
CodeIgniter, como bom framework que é, permite o desenvolvimento de web sites, softwares e aplicações em PHP de maneira ágil e relativamente descomplicada. O objetivo da equipe do CodeIgniter é disponibilizar um framework de máxima performance e capacidade, que seja flexível e o mais leve possível. Para conseguir estes objetivos, as bases do CodeIgniter são:
- Instanciamento dinâmico. No CodeIgniter, componentes são carregados e rotinas executadas somente quando preciso, ao invés de globalmente;
- Junção de componentes. Os componentes do framework são intercomunicativos, proporcionando alto índice de reutilização e flexibilidade dos sistemas baseados/derivados;
- Singularidade dos componentes. No CodeIgniter, cada classe - e respectivas funções - é autônoma, elevar seu grau de utilidade e o sistema,como um todo, ter mais performance.
CodeIgniter utiliza o padrão MVC
O conhecido e “consagrado” padrão MVC foi adotado no CodeIgniter. Todo o framework é baseado em Models, Views e Controllers; mas, diferente de muitos frameworks PHP, existe realmente uma flexibilidade muito grande! Por exemplo, um Controller não está “amarrado”, necessariamente, a um View e, inclusive, pode, este Controller, chamar diferentes Models e diferentes Views - torna-se muito fácil fazer templates, por exemplo.
Classes, bibliotecas e “helpers” nativos para diversas funcionalidades
Como bom framework PHP, CodeIgniter tem seus próprios excelentes recursos nativos, utilizados através de suas bibliotecas, “helpers” e classes que já constam no framework por default:
- Calendários. Fácil criação de calendários, inclusive com criação de templates de formatação e exibição.
- Bancos de dados. De maneira simples e rápida é possível: carregar databases, executar querys, manipular resultados de consultas, realizar transações (como se fosse PDO), fazer query caching, dentre outros.
- E-mails. Enviar e-mails em protocolos diferentes (Mail, Sendmail e SMTP), envio de cópias e cópias ocultas, e-mail em texto puro ou HTML, enviar e-mail com anexos, ferramenta própria para debug, dentre outros.
- Criptografia. Funções gerais de criptografia, através do uso de hashings e chaves.
- Formulários. Criação de tags de formulário “on the fly“, tratamento de campos e informações, upload de arquivos, etc.
- Manipulação de imagens. Redimensionar, criar miniaturas, rotacionar, cortar e inserir marca d’água.
- FTP. Funções gerais de FTP, como mover, renomear, deletar, etc; e ainda uma função especial de espelhagem (”mirroring“), que permite criação dinâmica de diretórios no servidor a partir de arquivos na máquina local.
- Compactação de arquivos. Manipulação, criação, controle e edição de arquivos compactados, sendo possível criar arquivos diretamente no servidor, acrescentar files diretamente e fazer downloads dos mesmos.
- Controle de cookies sessões PHP. Manipulação e controle geral de cookies e sessões PHP, com todas suas funções, capacidades e potencialidades existentes.
- Muitas outras funcionalidades. Muitas mesmo!
Material de aprendizagem, apoio e consulta
A equipe do CodeIgniter disponibiliza material de aprendizagem, apoio e consulta para as pessoas que usam o framework, através do Guia do Usuário, Wiki, fóruns, vídeo-aulas e exemplos e notícias, através de um blog oficial. Além disso, também há uma comunidade de programadores que utilizam o CodeIgniter e se ajudam mutuamente.
Considerações finais sobre o CodeIgniter
Esta foi uma breve introdução do framework PHP CodeIgniter. Eu mesmo, confesso, não o uso a muito tempo como framework “oficial” (devido aos testes que vinha fazendo em diversos frameworks, que comentei no início do artigo), sendo que me considero um novato no CodeIgniter.
Entretanto, devido a projetos de que faço parte e minha vontade de aprender, intento estudar bastante sobre o framework e, na medida que me for possível, compartilhar meu aprendizado com os leitores do desenvolvimento para web.
Então, faço um convite a você: baixe o CodeIgniter para que possamos aprender juntos sobre como utilizá-lo e “desvendar” todo seu potencial! Vamos nos ajudar a aprender e sermos bons programadores e utilizadores do CodeIgniter! ;-)









Tenho de aprender bastante mais sobre PHP. O que sei foi por percepção da lógica dos comandos juntamente com o sentido das acções. Nunca li uma linha sobre código por incrível que pareça, mas tenho alguns objectivos nessa área.
Boa matéria amigão!
@ Paulo Faustino
Programar em PHP é muito bom e divertido, ainda mais quando se usa um bom framework, como o CodeIgniter! Qualquer dúvida, já sabe onde me encontrar! ;-)
Abraços!
Trackback em 14 de julho de 2008
Trackback em 14 de julho de 2008