Seguindo a mesma linha de raciocínio do post anterior sobre frameworks para Flex, tentarei expor o pouco de conhecimento que tenho sobre frameworks PHP.
A idéia de estudar sobre frameworks em Flex veio primeiramente da curiosidade de saber o porque de todos falarem tanto sobre utilizar frameworks em PHP. Para mim, era possível fazer tudo de forma simples sem ter que utilizar o que eles chamavam de framework. Mas, ao assistir uma palestra no FISL apresentada por quatro caras da SERPRO-BA, tive a certeza que aquilo ali parecia ser muito bom e que não estavam falando asneiras sobre o porque de utilizar um framework.
A palestra foi uma espécie de tradeoff entre Zend Framework, Codeigniter, CakePHP e Symfony. Um tentando derrubar o outro, não era a toa que o nome da palestra foi intitulada de Framewarks PHP. Deixemos essa saudade conversa fiada de lado e vamos ao que interessa.
Não posso enxer a boca para falar que conheço bem os quatro frameworks que citei acima, posso até equivocar-me com as palavras a seguir, mas passarei a concepção que tive sobre cada um ao tentar estudá-los.
Zend Framework
Tem uma grande comunidade de desenvolvedores que o utiliza, sendo fácil o acesso a informações sobre o framework. Zend foi a empresa que reescreveu o engine OO para o PHP 5. É um dos, se não, o mais popular hoje. É robusto e é recomendado um conhecimento amplo em PHP. O único incoviniente para algum desenvolvedor é ser suportado apenas PHP 5+.
Codeigniter
Fácil de utilizar, alta performance e velocidade. Recomendado para pequenos projetos, oferece ‘helpers’ para codificação rápida, suporte recheado de documentação. Não é completamente OO como outros frameworks, mas dá suporte a PHP 4 e 5. Aconselhável para programadores iniciantes em PHP.
CakePHP
Recomendado para desenvolvedores iniciantes a avançados. Foca-se arduamente no desenvolvimento rápido. O rápido crescimento no suporte, simplicidade e escalabilidade vem fazendo dele um dos frameworks mais populares. Assim como o Codeigniter, dá suporte a PHP 4 e 5.
Symfony
Framework bastante poderoso, mas focado em desenvolvedores avançados. É muito poderoso, mas perde um pouco na performance para outros frameworks. Aconselhável para projetos high level. Percebi bastante configuração para deixar a base pronta pra o desenvolvimento front. Assim como o Zend, só é suportado PHP 5+.
Depois de muito pensar, gostei muito do Zend Framework e Codeigniter. Parecem encaixar-se em dois perfis de projetos que eu desenvolveria. Outros frameworks que chamaram-me atenção foi o KohanaPHP e Yii. O KohanaPHP parece ser bem parecido com o Codeigniter sendo que foi feito somente em cima do PHP 5. Já, o Yii é praticamente uma mãe, faz quase tudo pra você com alguns comandos no console.
Uma boa leitura sobre frameworks PHP é a deste artigo.







Destes frameworks só não utilizei o Symfony, vou dar uma opinião rápida. O que não me agrada no CI é o “incentivo” a fazer as coisas tanto para PHP4 e PHP5. Eu particularmente não consigo escrever minhas classes sem adicionar o devido nível de encapsulamento aos atributos, portanto após estudar bastante ele achei que seu fork (Kohana) seria uma opção muito melhor para a filosofia do CI. O Cake é o primeiro framework que dominei e construi aplicações no PHP. Ele é muito bom, prega desenvolvimento ágil, e é parecido com Rails, gostei muito, porém sua estrutura não é tão flexível. Já o Zend é a minha ferramenta de trabalho do dia-a-dia, arquitetura flexível, um ótimo MVC, ferramentas de linha de comando e etc. É muito robusto e vale a pena se estudar. Muitos dizem que sua performance é fraca, eu particularmente nunca tive problemas!
Quando escrevi este post, eu mal conhecia o todo poderoso PHP5. Alguns meses se passaram e, hoje, posso concordar que o CI tem lá seus aspectos chatos em relação ao PHP4/5, mas que na simplicidade e performance faz bem sua parte. Em relação ao irmão mais novo do CI, Kohana, tenho um certo receio devido a falta de documentação e exemplos espalhados na web. Você também sente isso?
Por incrível que pareça nunca fui com a cara do Cake; não me pergunte o porque. =X Mas dado que já lí de você e em outros lugares que ele é parecido com Rails, fiquei curioso para fuçar melhor com meu conhecimento atual.
O Zend dispensa comentários em relação aos seus recursos. Só tem uma coisa que me deixa com o pé atrás em relação a ele que é a performance. Ainda não tive uma experiência para definir de vez em usá-lo e dispensar os outros. Creio que o mais interessante dele são as libs que vem no pacote, podendo serem utilizadas mesmo não tendo o framework como base da aplicação.
Assim como você, nunca brinquei com o Symfony. Lí BEM a respeito de frameworks PHP essa semana e ví que ele foi utilizado em algumas aplicações grandes, como Yahoo! Answers por exemplo. Junto com o Doctrine, uma ótima ferramenta de ORM que virá na sua versão 2.0 cheia de novas funcionalidades (capaz de adotá-la como ORM nas minhas aplicações), parece-me uma dupla que não deixa ninguém na mão.
Se eu falar mais um pouco, vai acabar virando um update do post de tanto que falei.
[]‘s