fev 02

Comparativo Entre CodeIgniter e Zend Framework

CodeIgniter, PHP, Programação, Zend Framework 8 Comentários codeigniter_zend

No início do blog eu escrevi um pouco sobre CodeIgniter, um framework de desenvolvido MVC para PHP, por muito tempo eu continuei a usar CodeIgniter como meu principal framework de desenvolvimento, até que um dia esse framework começou a não atender mais minhas necessidades em um framework, no começo eu prefiri realizar algumas alterações no próprio núcleo do framework para que o mesmo passasse a atender minhas necessidades em pontos específicos, mas percebi que isso era um pouco improdutivo pois eu passava mais tempo adotando o framework as minhas necessidades do que realmente criando o código necessário para a aplicação.

Resolvi então que era hora de pesquisar novos frameworks de desenvolvimento, e um dos pesquisados foi o Zend Framework, o qual eu já conhecia, mas com o qual eu nunca tinha trabalhado profundamente, e esse acabou sendo a minha escolha de framework para alguns projetos e com o tempo fui percebendo as vantagens e desvatagens que um deles levava em relação ao outro, esse artigo tem como objetivo mostrar minha opinião sobre esses dois frameworks de desenvolvimento.

CodeIgniter

CodeIgniter

CodeIgniter

O CodeIgniter é um framework de desenvolvimento MVC em PHP mantido pela EllisLab, e que até o momento em que escrevo esse artigo encontra-se em sua versão 1.7.2. Algumas das vantagens e desvantagens que irei apresentar agora já foram apresentadas nos artigos PHP com CodeIgniter e Começando com CodeIgniter, mas esse arquivo que escrevo agora tem mais um caráter comparativo do que explanatório.

Vantagens

  • Foi desenvolvido para dar suporte tanto para servidores PHP 4.x quanto para servidores PHP 5.x, portanto se você desenvolvedor trabalho com um servidor em PHP 4.x minha primeira sugestão é para que você migre seu servidor para 5.x já que o suporte ao PHP 4.x foi descontinuado em 31/12/2007, mas caso isso não seja possível a sua única opção entre CodeIgniter e Zend Framework será o primeiro.
  • Documentação ampla e bem organizada disponível em diversas linguas com tutoriais em vídeo, além de uma wiki e fórum dos usuários.
  • Baixa Curva de Aprendizado, para aqueles que já conhecem PHP, mas nunca utilizaram nenhum framework de desenvolvimento assim como nunca utilizaram outros conceitos de MVC aprender a desenvolver em CodeIgniter é uma tarefa bem simples, em parte pela documentação citada acima e em parte pela facilidade de uso do framework mesmo.

Desvantagens

  • Baixa taxa de atualização, a versão atual 1.7.2 foi lançada em 11 de setembro de 2009 e de lá para cá não houve mais nenhuma atualização, isso faz com que o framework não acompanhe as tendências de tecnologia e de mercado.
  • É um framework que realiza muito bem as funções básicas de um framework, mas qualquer coisa além disso seria pedir demais do framework, ele possui suporte apenas para conexões aos principais bancos de dados do mercado, portanto se você utiliza algum banco de dados não tão usado assim ou se aderiu aos bancos de dados no SQL saiba que ele não oferece suporte ao seu banco de dados. Além disso, não possui suporte as novas tendências em web social, não tendo bibliotecas nativas para conexões com facebook, twitter e etc, tudo isso devido a baixa taxa de atualização do framework.

Conclusão CodeIgniter

Na minha opinião é o framework ideal para o desenvolvedor que ainda trabalha com PHP puro e quer aprender um pouco mais sobre arquitetura MVC e utilização de frameworks de desenvolvimento, mas esse desenvolvedor deve ter plena consciência de que um dia esse framework irá deixar de atender suas espectativas e ele terá que procurar um framework com mais funcionalidades e consequentemente mais complexo.

Zend Framework

Zend Framework

Zend Framework

O Zend Framework é o framework de desenvolvimento MVC mantido pela propria Zend que também é a mantenedora oficial da linguagem PHP. O Framework atualmente se encontra em sua versão 1.11.

Vantagens

  • Maior número de atualizações em comparação com CodeIgniter, a versão atual 1.11 acaba de ser lançada e desde sua primeira versão estável em 2007 uma versão nunca ficou mais de um mês sem receber atualizações.
  • O framework possui todas as funções básicas que se espera de um framework MVC como suporte a conexões com inúmeros bancos de dados, uma excelente arquitetura MVC e ainda realiza outras funções mais complexas como suporte a redes sociais, autenticação, paginação, edição e criação de arquivos, upload de arquivos e muitos outros.
  • É um framework totalmente desenvolvido de forma orientada a objetos.

Desvantagens

  • Uma das desvantagens seria o suporte a apenas a versão 5.x do PHP, mas sinceramente não considero isso uma desvantagem, já que como dito anteriormente a versão 4.x já foi descontinuada a muito tempo, não acho que ainda se deva dar muita atenção a ela, acredito sim que precisa haver uma migração total dos servidores que ainda trabalham com PHP 4 para PHP 5.
  • A documentação do Zend Framework na minha opnião é tão completa quanto complexa, quando comecei a trabalhar com o framework essa foi uma das maiores dificuldades que senti com relação ao framework, muitas vezes era mais fácil encontrar as respostas em outros sites do que na própria documentação da linguagem, documentação essa que até possui um área destinada a traduções da mesma, mas que na prática não funciona nem um pouco, por isso a documentação só está disponível em ingles.
  • Alta curva de aprendizado, em parte pela deficiência na documentação e em parte pela maior complexidade do framework mesmo e o maior número de funcionalidades presentes.

Conclusão Zend Framework

Não é um framework para aqueles que sairam agora do PHP puro, migrar diretamente do PHP puro para uso do Zend Framework na minha opnião seria uma tarefa extremamente complexa de se realizar, e por isso não recomendo, mas aqueles que optarem por inicial com CodeIgniter sentiram mais cedo ou mais tarde a necessidade de migrar para um framework mais completo.

Conclusão Final

Ao meu ver a ordem natural de aprendizado em desenvolvimento web é iniciar sua caminhada com as linguagem de marcação e estilo para então migra para uma llinguagem server side, caso PHP seja a linguagem escolhida, o desenvolvedor deverá trabalhar um pouco com a linguagem de forma pura, mesmo não aconselhando a usá-la em projetos reais, mais essa prática da muita bagagem ao desenvolvedor para que ele trilhe o próximo passo.

Próximo passo esse que seria a utilização de um framework mais simples como CodeIgniter, aconselhado para o desenvolvimento de pequenos projetos no início a carreira desse desenvolvedor, em seguida a migração para um framework de desenvolvimento mais completo e consequentemente complexo como o Zend Framework.

Com todas as premissas apresentadas acima não posso deixar de dizer que o principal ponto no qual o CodeIgniter deve melhorar é uma maior frequência de atualizações, que fariam com que ele recuperasse o tempo perdido e se adequasse a nova realidade do mercado de tecnologia. Já do lado do Zend Framework melhorias na documentação seriam muitíssimo bem vindas, e ajudariam tanto os desenvolvedores que já utilizam o framework, quanto ampliaria a migração de outros desenvolvedores para ele. Dentre as melhorias na documentação eu poderia citar a tradução da mesma para outros idiomas e a conclusão das traduções para os idioma atualmente suportados somente na teoria, um maior detalhamento dos argumentos das funções presentes no framework, já que as funções até são bem documentadas, porém seu argumentos não, e a criação de exemplos práticos de utilização dessas funções, já que esses inexistem.

8 respostas para “Comparativo Entre CodeIgniter e Zend Framework”

  1. Diogo disse:

    Tenho que concordar contigo, passar do PHP puro direto para o Zend Framework foi muito difícil, já que nunca tinha visto o conceito de MVC e realmente a documentação não é das melhores.
    Mas hoje fico feliz em ter investido tempo no aprendizado dele.

    Parabéns e boa sorte pelo retorno do blog.

  2. [...] post anterior fiz um Comparativo entre CodeIgniter e Zend Framework, os dois frameworks de desenvolvimento em PHP com os quais eu mais trabalhei e tenho mais [...]

  3. [...] algumas semanas atrás eu fiz um Comparativo entre Zend Framework e CodeIgniter, praticamente na mesma semana da publicação do arquivo a EllisLab lançou a versão 2.0 do [...]

  4. Diego disse:

    Olá! Seria bom vc atualizar esse post agora ou comentar algo sobre a nova atualização do CI que já conta com suporte total e exclusivo ao PHP5 e já com bibliotecas de integração com twitter e facebook

  5. [...] anteriormente um artigo Comparando Zend Framework com CodeIgniter, dos últimos artigos que escrevi esse foi um dos mais visitados, o que me faz pensar que os [...]

  6. Mauro disse:

    Muito bom o artigo, estava pensando em começar com o Zend, mas agora vejo que vou começar pelo CI, apesar de eu ter já usado um framework da própria empresa que eu trabalhava.

  7. Erich disse:

    Cara muito interessante o post, estou procurando um framework para começar a trabalhar acho que zend vai valer a pena mesmo pela complexabilidade ..

Deixe uma resposta