PHPit - PHP

"Agora, pois, permanecem a fé, a esperança, o amor, estes três; mas o maior destes é o amor." (I Coríntios 13:13)

Frameworks PHP - Qual é o melhor pra você?

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

Dim dim

 

Comentaí! (19)

O Spaghetti é muito promissor, e, na minha opinião, o mais fácil de todos para iniciantes.
Depois de iniciar com ele, parece que os outros ficaram mais difíceis de trabalhar. Klawdyo em 22/07/2009 às 08:13 utilizando o Google Chrome Google Chrome 3.0.193.1 no Windows Windows Vista
Estou criando um com meus colegas aqui do trabalho, que visa principalmente performance. a documentação é minima (somente alguns comentários no codigo), mas ele vem com uma aplicação de exemplo. dê uma olhada.

http://vortice.googlecode.com

e alguns sites que usam:

* http://to.gov.br
* http://jalapao.to.gov.br
* http://faleconosco.to.gov.br

A grande vantagem dele é que é construído para quem sabe programar e sabe muito de SQL, além de não amarrar. apesar de ser MVC, caso você queira (ou precise), dá para quebrar a regra...

[]'s Carlos André Ferrari em 22/07/2009 às 10:51 utilizando o Mozilla Firefox Mozilla Firefox 3.5 no Linux Linux
Concordo com o Klawdyo, realmente o Spaghetti por ser em portugues eh muito mais facil para aprender e para iniciantes com PHP.

MAs nao apenas, eh muito poderoso e apos aprender a sintaxe nos faz economizar muito tempo. Rodrigo Fante em 22/07/2009 às 10:53 utilizando o Mozilla Firefox Mozilla Firefox 3.5.1 no Windows Windows Vista
Realmente esse Spaghetti* é bem interessante.

No Brasil também temos um framework chamado Miolo, mas eu não tive a chance de testar ainda (falta de tempo).

Se alguém já usou, por favor, deixe sua opinião sobre ele! :D admin em 22/07/2009 às 10:56 utilizando o Mozilla Firefox Mozilla Firefox 3.5.1 no Mac OS Mac OS X
Eu já usei o Spaghetti, CodeIgniter e CakePHP e decidi ficar com o CakePHP Ronaldo em 22/07/2009 às 11:07 utilizando o Mozilla Firefox Mozilla Firefox 3.5.1 no Windows Windows XP
Eu uso atualmente o ZendFramework e já trabalhei com o Prado a alguns anos atrás, mas já ouvi falar muito bem do CodeIgniter, Symfony, CakePHP Elias de A. Rodrigues em 22/07/2009 às 11:56 utilizando o Google Chrome Google Chrome 2.0.172.37 no Windows Windows XP
Muito bom esse post falando dos frameworks.
Eu uso e aprovo o Spaghetti*, tenho usado ele em todos sistemas aqui da agência e não me deixou na mão em momento algum, tudo que preciso ele pode me fornecer.
É realmente bastante poderoso.
Depois do primeiro sistema pronto, os próximos ficaram 846239407234milhões de vezes mais rápido de programar.
Abraços Xani em 22/07/2009 às 11:59 utilizando o Mozilla Firefox Mozilla Firefox 3.0.11 no Windows Windows Vista
Fiquei bastante curioso sobre o uso do:

>> http://www.akelos.org/

Alguem jah teve alguma (boa|ma) experiencia com ele? Everton J. Carpes em 22/07/2009 às 15:28 utilizando o Debian IceWeasel Debian IceWeasel 3.0.11 no Debian GNU/Linux Debian GNU/Linux
Eu fico com o Zend Framework.

Brinquei um pouco com o CodeIgniter e me impressionei com a simplicidade, o CakePHP para ser uma boa !!!

Tem um site que faz uma listagem de frameworks php e suas funcionalidades, se alguém quiser dar uma olhada: http://www.phpframeworks.com Wellington em 22/07/2009 às 21:47 utilizando o Mozilla Firefox Mozilla Firefox 3.0.12 no Windows Windows Vista
Legal, show de bola o post, há quase um ano utilizo o zend framework, vale a pena destacar sua modularidade, sendo possível acoplar "qualquer coisa" no framework, no meu caso os exemplos mais bem sucedidos foram o tcpdf, doctrine ORM, e uma library própria de funcionalidades que não estavam presentes no framework. Xorna em 23/07/2009 às 19:22 utilizando o Mozilla Firefox Mozilla Firefox 3.0.12 no Ubuntu Linux Ubuntu Linux
bastante interessante a discussão eu já olhei o zend,code igniter,spaghetti e no fim montei uns padrões meus e umas classes que achei pela net e uso isso queria aprender o zend mas só pra configurar pra começar a poder usar já é uma demora ,muita config pra ser feita já desanima ali rs renato em 24/07/2009 às 08:46 utilizando o Internet Explorer Internet Explorer 7.0 no Windows Windows XP
Ótima comparação de frameworks!

O CakePHP possui um gerador de código realmente ágil, chamado Bake. Em 5 minutos é possível fazer um sistema.

Vale citar também o Kohana (http://kohanaphp.com). Este framework tem a estrutura bem parecida com o CodeIgniter e entre outras funcionalidades implementa ORM. Alexandre Eher em 31/07/2009 às 15:50 utilizando o Mozilla Firefox Mozilla Firefox 3.0.12 no Ubuntu Linux Ubuntu Linux
Bom hoje existe muitos frameworks só que sou da seguinte opnião de eu não conheço 100% do frameworks não uso, hoje tenho um frameworks proprio o iGrape (http://www.avelino.us/projects/igrape/)

É bem simples e funciona. Thiago Avelino em 24/08/2009 às 11:27 utilizando o PHP PHP
Cara, muito bom o artigo.
Eu estou utlizando o Zend tb, mas já estou de olho no Cake. Vejo muitas vagas no mercado.

ahs, Felipe Oliveira em 29/08/2009 às 01:27 utilizando o Mozilla Firefox Mozilla Firefox 3.5.2 no Windows Windows XP
já me interessei e brinquei com CakePHP, Akelos e CodeIgniter. o que mais gostei foi o CodeIgniter, e também o único que usei num projeto sério (embora com uma série de alterações).
acho que se tivesse que escolher algum hoje de novo, iria dar uma boa olhada no Kohana. :) eljunior em 18/09/2009 às 20:27 utilizando o Mozilla Firefox Mozilla Firefox 3.5.3 no Linux Linux
Eu estou pensando em voltar do java para o php, e gostaria de saber se algum dos frameworks citados tem implementa controles de tela, tipo o richfaces do java.
valeu Humberto em 11/10/2009 às 21:20 utilizando o Mozilla Firefox Mozilla Firefox 3.0.13 no Mac OS Mac OS X
awsda ewfg em 02/12/2009 às 10:46 utilizando o Mozilla Firefox Mozilla Firefox 3.5.5 no Windows Windows XP
Ótimo artigo. Estou procurando um bom framework para o meu trabalho e foi muito bom dar uma lida por aqui.
Saudações! Henrique Luz em 25/02/2010 às 14:36 utilizando o Mozilla Firefox Mozilla Firefox 3.0.16 no Windows Windows XP
Só uma correção o padro não é relativamente novo, tem versão desde de 2006 Daniel em 07/07/2010 às 13:27 utilizando o Mozilla Firefox Mozilla Firefox 3.5.10 no Windows Windows XP
 

Comenta logo, pô!

* Todos os links inseridos nos comentários possuem rel="nofollow" para impedir com que crawlers considerem os mesmos como relevantes.
* Os e-mails não são divulgados.

Dados pessoais

Você é realmente um humano?

Finalmente, digite seu comentário :)

Caixinha de Sugestões

O que é isso? Aqui você pode simplesmente digitar uma sugestão (artigos, resenhas, melhorias, etc) sem precisar preencher longos formulários. Digite o que quiser na caixinha abaixo e eu lerei com o maior prazer! Se quiser se identificar, fique a vontade!

O PHPit é redigido e mantido por Rafael Jaques - Política de Privacidade.

XHTML/CSS desenvolvido por André Gazola.

PHPit 2007 - 2009 - Alguns direitos reservados.

Feeds ;)

Creative Commons License

PHPit por Rafael Jaques é licensiado sob a Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.