10 razões de porque CodeIgniter arrasa

27 de abril de 2009, em Diversos, Passos Iniciais, por

De vez em quando é possível encontrar em algum artigo de blog ou discussão em fóruns a pergunta sobre qual é o melhor framework para PHP. Todos os frameworks têm seus pontos positivos e negativos, mas a verdadeira resposta para essa pergunta, é que depende do programador. Cada programador tem um estilo diferente e diferentes prioridades quando se trata de adotar uma tool kit para usar na construção de seus aplicativos.

Nossa escolha é CodeIgniter (CI) e abaixo estão as minhas 10 razões de porque CodeIgniter arrasa!

Este artigo é tradução do original “10 Reasons Why CodeIgniter Rocks“, do Chris Monnat, e sofreu pequenas modificações.

10. Arquitetura MVC

A arquitetura Model, View, Controller não tem nada de novo. É como se todos os frameworks hoje em dia fossem feitos em MVC e, os que não são, podem ser adaptados facilmente. Tenho tido experiência construindo grandes aplicações de forma procedural e toda vez elas terminam com uma salada-mista de códigos ingerenciáveis. A forma MVC oferece uma boa separação de códigos, e mantém a escrita limpa. Alguns frameworks forçam você a trabalhar de uma forma específica, mas o CI deixa você livre dentro do modelo MVC para programar como achar melhor. Se isso significa ignorar modelos, então, que assim seja.

9. Quase nenhum pré-requisito para o servidor

Diferente de outros frameworks PHP, o CI trabalha com as versões 4 e 5 do PHP. Isso faz a vida de alguém como eu, que tem que ser capaz de trabalhar entre as duas versões, muito mais fácil. Claro, há muito tempo tenho usado técnicas do PHP 5 nas minhas aplicações, mas o framework por si só funciona em ambas versões.

Agora o CodeIgniter só trabalha com PHP5. Vamos lá, pessoal, um dia isso ia acontecer. :-)

8. Fácil de entender e extender

O CI foi o primeiro framework que usei que realmente fez sentido para mim. Tentei o Cake PHP, o Zend Framework, Symfony, entre outros, e o CI foi o melhor para sair desenvolvendo rapidamente. É simples também quando se trata de escrever novas bibliotecas, mudar o comportamento de bibliotecas existentes, e simplesmente mudar todo comportamento do framework com um pequeno esforço.

7. Todas as ferramentas que você precisa em um pequeno pacote

Calendário, e-mail, codificação ZIP, validação, upload, sessões, teste de unidade… São somente algumas das bibliotecas pré-prontas que vêm com o CI. Isso inclui uma rápida importação dos “helpers” padrão para coisas como formulários, manipulação de arquivos, arrays, strings, cookies, diretórios e muito mais. Se tudo isso ainda não foi suficiente, você pode criar suas próprias bibliotecas e “helpers” ou usar código desenvolvido pela comunidade CI e postado no Wiki.

6. Instalação não necessária

Acredite ou não, uma das coisas mais difíceis que experienciei testando novos frameworks é a instalação dos mesmos. Eu não sou fã das linhas de comando UNIX, então procuro ferramentas que posso instalar e usar apenas subindo arquivos para um diretório. O CI é perfeito para isso. Não é preciso pacotes PEAR ou mudanças no servidor para ter o framework rodando. Apenas suba os arquivos para o seu servidor e pronto.

5. Ferramentas de segurança pré-prontas

O CI permite que você implemente quanta segurança for necessária para a sua aplicação. Ele faz algumas coisas por padrão como desconfigurar todas variáveis globais independente da diretiva register_globals do PHP, e desabilita o magic_quotes_runtime durante a inicialização do sistema, assim você não precisará remover as barras quando for capturar dados do seu banco de dados. Outras coisas podem ser habilitadas, como encriptação de cookies, integração de dados de sessão com o banco de dados e automação de tratamento de consultas SQL.

4. Abstração de banco de dados e mais

Todo framework decente de hoje em dia tem uma camada de abstração de banco de dados e o CI não é diferente. Você pode facilmente criar declarações de insert, update e delete sem precisar escrever SQL. Manipule conexões para múltiplos bancos dentro de uma só aplicação e conecte-se em qualquer tipo de banco: MySQL(4.1+), MySQLi, MS SQL, Postgre, Oracle, SQLite ou ODBC. O CI também deixa você manipular o banco de dados adicionando/removendo colunas de tabelas, criando novas tabelas e removendo as antigas usando a nova biblioteca “database forge”.

3. Comunidade grande e ativa

A ultima vez que chequei, havia mais de 57.000 (na data de publicação deste artigo, mais de 70000) membros registrados no fóruns CI. É uma ótima comunidade para trabalhar quando se tem um problema ou uma questão. O site do CI tem um fórum e um Wiki quando você procura por respostas. Não há listas de grupo confusas ou canais de chat apenas para pegar uma resposta rápida.

2. Documentação excelente

De longe, a maior vantagem do CI é sua documentação. Eu admito que tentei outros frameworks enquanto eles ainda estavam na versão BETA e sob desenvolvimento. Mas a documentação do CI é 10 vezes melhor do que a documentação deles, e realmente acredito que é porque o CI é apoiado por uma empresa e não somente pela comunidade. EllisLab, a empresa que criou o CI, tem orgulho de tê-lo criado e eles têm grandes planos para ele, de modo que eles não têm problema em gastar o tempo necessário para criar uma documentação de qualidade para a comunidade de usuários.

1. Logo mais irá se unificar com o ExpressionEngine

A primeira razão do porque o CI arrasa é que o ExpessionEngine, sistema de gerenciamento de conteúdo da EllisLab, está sendo reconstruído para utilizar o framework. Isso significa que as bibliotecas, “helpers”, etc. que você desenvolver para o CI, poderão ser reutilizados para o EE e vice-versa. Também significa que, o que quer que o EE precise operar, o CI tem. Classes melhoradas, autenticação de usuários pré-pronta, capacidade para facilmente programar aplicações modulares e muito mais. Tudo isso é apenas especulação, a nova versão do EE ainda não foi lançada, mas podemos sonhar (NT: quem tem uns dólares extra pode sonhar mais, porque o ExpressionEngine é pago).

14 comentários em "10 razões de porque CodeIgniter arrasa"

gravatar

Matheus  em 28 de abril de 2009

Que legal, excelente post, ainda mais pra mim que não estudo o CI há quase 2 meses em virtude das atribulações da vida.

“… EllisLab, a empresa que criou o CI, tem orgulho de tê-lo criado e eles têm grandes planos para ele…”

“1. Logo mais irá se unificar com o ExpressionEngine”

Os tópicos 1 e 2 me fizeram lembrar do Kohana, o framework que nasceu do CI e é mantido pela comunidade. Uma das justificativas da mesma era que o CI era mantido e estava descontinuado pela empresa responsável, então desenvolveram um mantido pela comunidade e totalmente em PHP 5.

Tomara que a empresa tenha mesmo idéias para o CI pois é fácil perceber (e os 10 pontos mostrados esclarecem facilmente) que o CI é um dos melhores, senão o melhor.

gravatar

Alexandre de Oliveira  em 29 de abril de 2009

Rúbia, você fez o CI brilhar agora com suas palavras :)

Gostaria de saber qual é esta vantagem do ExpressionEngine. Pelo que sei, tem que pagar pra usar, não?

Bem, eu fui contrário, passei do CI para o CakePHP (e do Cake vou para o Ror). A documentação do Cake era realmente uma droga. Do CI é um paraíso.

De tudo de tudo, realmente, tudo depende do desenvolvedor.

Abraço.

gravatar

Rúbia Gardini  em 4 de maio de 2009

@Matheus, eu não creio que o CI esteja sendo descontinuado, o novo release deles data 10/02/2009, faz um tempinho, mas vira e mexe eles atualizam, e a comunidade no fórum é muito ativa! Sempre existe a "curva" de nascimento, desenvolvimento e encerramento de qualquer software ou framework, ainda bem né? Pois geralmente são substituídos por algo BEM melhor, mas torço pra que o CI continue por algum tempo ainda, pois tenho muitas aplicações feitas nele, e além disso ADORO, foi por intermédio dele que comecei a trabalhar com OOP. Bjão moço :)

gravatar

Rúbia Gardini  em 4 de maio de 2009

@Alexandre, não conheço bem o Expression Engine; das poucas vezes que tentei utilizar o demo não compreendi a dinâmica dele e acabei deixando de lado. Ele é pago sim, assisti uma vez o vídeo de demonstração dele e achei a ultima das maravilhas. Seria o caso de experimentar mais.
Concordo plenamente com você. O que importa realmente é o desenvolvedor.
Bjos

gravatar

Natanael  em 28 de maio de 2009

Muito bom, o CI realmente “arrasa”, hoje em dia temos que desenvolver com mais rapidez sem perder qualidade, o CI proporciona isso

gravatar

Rúbia Gardini  em 26 de junho de 2009

@Natanael – Com certeza! Fiz coisas no começo desse ano com manipulação de imagens… se não fosse o CI com suas facilidades, teria demorado o triplo do tempo, e cara, foi realmente fácil fazer a ferramenta de manipulação de imagens com ele. Fora trabalhar com banco de dados, que com ele é praticamente perfeito. É só ficar atento às versões de PHP que o seu host usa, algumas funções do Active Recorder não funcionam encadeadas, entre outras claro, mas mantendo seus sites em um host que utilize as versões mais recentes de PHP, fica tudo mil maravilhas! É isso aí ;-)

gravatar

Daniel Cléber  em 15 de julho de 2009

Tudo bem Rubia? Ficou ótimo o blog, não sei se se lembra, mas foi você que me apresentou o codeIgniter!

gravatar

Marvio Rocha  em 13 de dezembro de 2009

Inicie no CakePHP, achei ruim a forma de se trabalhar, além de tudo tem que criar um banco de dados para usar o scaffoding… Que não é o caso do CI, logo assim que comecei a usar fiquei apaixonado pela forma de se trabalhar com ele. Sem dúvida o CI, é o melhor framework na minha opnição

gravatar

Tárcio Zemel  em 14 de dezembro de 2009

@ Marvio Rocha
É isso, aí, Marvio! CodeIgniter é o melhor framework PHP da atualidade! Claro que outros frameworks também apresentam excelentes pontos e funcionalidades, mas, sem dúvida, CodeIgniter arrassa! :-)

gravatar

Cálcio  em 2 de março de 2012

Sem dúvidas o CI é um excelente fw, atualmente estou estudando e usando o CI no trabalho e estudando tb o Yii Framework (esse é oq eu gosto +) e pretendo depois claro dar uma passada pelo CakePHP.

Mas o CI é de longe o mais fácil de usar e configurar, Se o programador tem noção de POO e MVC fica mais fácil ainda.

A documentação tb é a mais simples e objetiva de entender.
Esse fw está de parabéns pela sua simplicidade, tamanho e documentção objetiva.

gravatar

Jogos da Polly  em 25 de março de 2012

Comecei a mexer recentemente com isso e me achava perdida até o dia em que encontrei este site. Ainda estou começando, mas já vejo progressos interessantes.

gravatar

Thiago Bezerra  em 19 de fevereiro de 2013

Esse item 9. está desatualizado, pois a vesão 2 do CodeIgniter não suporta mais o PHP4.

gravatar

Tárcio Zemel  em 26 de fevereiro de 2013

Tem razão, Thiago! Acabei de atualizar, abraços!

Comente!