Frameworks PHP – Qual é o melhor pra você?

Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!

Prefácio

Tem-se falado muito em frameworks PHP ultimamente. Esta onda começou com o advento do famoso Ruby On Rails. Hoje temos várias pessoas utilizando estas ferramentas, porém há um problema: existem muitos frameworks. Cada um deles possui prós e contras e isso torna a tarefa de escolher um muito, muito punk.

Entenda que escolher o framework “certo” depende totalmente das necessidades pessoais e do projeto. Não vou falar das ferramentas que cada um possui, apenas um conceito geral. Você pode ver este artigo (em inglês) que é um relatório de benchmark. Outro site bacana que você pode acessar (também em inglês) e o PHP Frameworks, que possui um comparativo

Aqui vai uma pequena lista dos frameworks que considero mais promissores/úteis/práticos. São eles: Zend Framework, CakePHP, CodeIgniter, Prado, Symfony e o brasileiro Spaghetti*.

Todavia, existem muitos outros frameworks disponíveis no mercado e, claro, você pode colaborar com essa discussão nos comentários. :)

Zend Framework
O framework mais badalado do momento. E também não é pra menos, pois a criadora do framework (a Zend) é a mesma empresa que mantém o desenvolvimento do PHP. É rico em funcionalidades e é também o mais rápido. Infelizmente, todo esse poderio faz com que esta ferramenta torne-se muito grande (a modularização do framework pode resolver isso). Não funciona com o PHP 4 (o que não chega a ser um contra, apenas uma observação). É um framework para quem deseja construir grandes aplicações (embora também possa ser utilizado para pequenas e médias). Além de possuir uma documentação extensa e diversas publicações relacionadas, existem diversos programadores sérios que testam exaustivamente todos os códigos que são desenvolvidos antes de liberar para produção.

Visite o site do Zend Framework
Visite o site da comunidade brasileira do ZF

Symfony
Um dos frameworks mais poderosos e é muito bem dividido. Todas as tarefas são modulares e o framework utiliza diferentes camadas para manejar os dados. É bastante útil para projetos com necessidades de grandes funcionalidades. Contudo, de todas as opções citadas, é o mais lento de todos.

Visite o site do Symfony

Prado
Este é o mais peculiar dos frameworks para PHP. Não é um clone do Rails. É melhor chama-lo de “ASP.net no PHP”. Este framework provê uma aplicação baseada em eventos, tal e qual o ASP.net, que é famoso por ser uma das ferramentas frequentemente escolhidas para aplicações de grande porte. Este framework é relativamente novo e, com certeza, não tão poderoso quanto o ASP.net, mas pode ser uma boa ferramenta pra quem vem do ASP.net ou para quem quer migrar para lá (não recomendo que façam isso :P).

Visite o site do Prado

CakePHP
O melhor port do Rails para o PHP, na minha opinião. CakePHP é um framework promissor, pois possui toda a facilidade que o Rails dispõe. Possui uma comunidade bastante ativa e já é utilizado em produção por diversas empresas e sites. Inclusive o CMS Mambo (cria do Joomla) decidiu utilizar o Cake. Destina-se a qualquer tipo de aplicação e também possui uma base gigantesca de componentes e plugins.

Visite o site do CakePHP (BR)

CodeIgniter
Aqui temos o framework que pode ser chamado de “CakePHP mais fácil”. Ele não força o desenvolvedor a utilizar o padrão MVC como o Rails ou o Cake, portanto é mais simples para iniciantes. Ele também possui uma comunidade muito ativa, documentação bastante detalhada e diversos componentes adicionais. É também mais rápido do que a maioria dos frameworks disponíveis.

Visite o site do CodeIgniter
Visite o site da comunidade brasileira do CI

Spaghetti*
Framework brasileiro, bastante poderoso, que possui uma estrutura de diretórios semelhante à do CodeIgniter. Ele é bastante interessante por possuir todos os comentários dos códigos em português. Possui uma documentação relativamente boa e estimula a utilização de boas práticas de desenvolvimento como utilização de camadas, controle de versão e refatoração de código.

Visite o site do Spaghetti*

Conclusão

Eu, pessoalmente, adotei o Zend Framework. Mas vamos dar uma olhada geral no que pudemos perceber nos frameworks aqui listados.

O CakePHP se encaixa em praticamente qualquer projeto, e desenvolver com ele é bem rápido. Contudo, muitas pessoas podem não gostar do seu “amor” por convenções. Sugiro que iniciantes ou pessoas que odeiem convenções, utilizem o CodeIginiter. As grandes empresas irão utilizar o Zend e pessoas procurando por novos desafios utilizarão Prado ou Spaghetti*.

Espero ter dado uma visão geral de cada framework e poder auxiliar na sua decisão.

Vale lembrar também que a utilização de certo framework em um determinado tipo de projeto pode ser realmente um tiro no pé, portanto escolha com sabedoria.

Um abraço a todos e fiquem com Deus.
Rafael Jaques