Escolhendo um framework PHP

Gostaria de propor um assunto que há muito tempo é debatido por universitários, empresas e desenvolvedores de softwares, que é a escolha de um framework .

Ao longo dos meus anos de carreira como desenvolvedor tropecei em algumas pedras e descobri algumas pérolas na escolha de Framework PHP, por isso, gostaria hoje de compartilhar esse conhecimento com alguns de vocês que talvez estejam passando pelo mesmo dilema que muitas vezes eu passei. Qual Framework utilizar?

framework-desenvolvimento-software

Imagem via Shutterstock

Hoje temos tantas opções de framework que muitas vezes ficamos perdidos em escolher o “Melhor” para se trabalhar.

Aprendi que a pergunta correta na escolha não é “Qual o melhor Framework” e sim “Qual o melhor Framework para esse projeto“. A escolha de um framework está sim ligada diretamente ao projeto que você está desenvolvendo, mas não só isso, seu tempo e o nível de conhecimento também colaboram para a definição da sua escolha.

Existem alguns aspectos que considero importantes na avaliação de frameworks (não só PHP), e hoje irei mostrar alguns destes e algumas experiências que tive.

O primeiro aspecto a se avaliar é a comunidade do framework. Geralmente frames com uma comunidade muito grande tendem a serem mais completos e possuem um ciclo de vida mais longo, pois recebem maior atenção (para correções, melhorias, etc).

O segundo aspecto é a documentação dessa ferramenta. Quanto mais documentação existir, melhor. Porém, não basta somente palavras escritas ao léu, tem que ser uma documentação fácil de entender, completa (inclusive com exemplos) e constantemente atualizada.

O terceiro ponto a se observar é a quantidade de atualizações que o frame recebeu ao longo dos últimos 3 meses. Isso é muito fácil de se avaliar, basta acessar o repositório do frame e verificar datas de atualizações. Por que isso é importante? Simples, com esta informação sabemos quão ativo é o framework em relação ao dinâmico mercado de desenvolvimento.

O quarto aspecto é a curva de aprendizado desse frame. Sempre leve em consideração o tempo que você vai gastar para aprender a utilizar as funcionalidades, pois isso influência diretamente o tempo de desenvolvimento. Este ponto pode ser avaliado através de pesquisas em fóruns, avaliando e comparando exemplos, etc.

Quinto, quantidade de plugins disponíveis e integração com outras ferramentas. Uma definição bem chula de plugin é: “Precisa de alguma funcionalidade? Busque um plugin que possa já ter a funcionalidade pronta”. Quanto mais plugins prontos existirem para o seu frame, menos tempo você vai ter que perder criando soluções para os desafios genéricos que você vai encontrar.

Sexto e o mais importante, sua satisfação em utilizar a ferramenta. Cada um tem suas manias, gostos e vaidades e ao utilizar um frame isso deve também ser colocado como peso. Se você gosta ou não de trabalhar daquela forma estipulada pelo frame, se as limitações impostas lhe agradam, etc. Claro que muitos permitem personalizações, mas a ideia aqui é pegar um frame e utiliza-lo do jeito que foi criado.

Alguns frameworks interessantes a serem avaliados

Temos frames PHP bem completos, tal como o Zend Frameworkque é uma super ferramenta. Posso dizer que ele tem “Quase tudo”, sem contar que é utilizado por muitíssimas empresas devido a sua estabilidade. Porém, tem como “lado negro” sua curva de aprendizado, que é muito grande. Então, se você é um cara que está começando agora (menos de 1 ano como programador) é provável que vai patinar bastante para aprender a utiliza-lo. Até mesmo muitos que já tem uma certa experiência não utilizam 100% do potencial da ferramenta.

Na outra extremidade temos o CODEIGNITER, um framework menos robusto que o Zend e com uma curva de aprendizado muito baixa. Minha sugestão para você que tem pouca experiência ou não quer quebrar muito a cabeça para entender um frame, o CODEIGNITER é o ideal, porém, ele também tem um lado negro. Por ser um frame muito simples, esqueça uma quantidade enorme de plugins prontos, tal como o Zend, oferece.

Se você quer uma cópia do CODEIGNITER só que  mais completo, temos o LARAVEL, porém, sua comunidade é muito pequena no Brasil e ainda não tive tempo de estudá-lo a fundo, então não posso falar muito sobre ele. Só me parece muito promissor. Alguém usa e tem algo a comentar sobre ele?

Bom, o meu favorito é o CAKEPHP. Este é um frame completo (não como o Zend) que me atende em 90% dos casos que atuo. Sua curva de aprendizado é pequena se comparado ao Zend, porém, um pouco maior em relação ao Codeigniter. Se você quer agilidade no desenvolvimento, ele é o cara! Falo que ele é meu favorito, pois até agora não encontrei defeitos, no entanto, se alguém tiver queixas, por favor, deixem nos comentários abaixo.

Existem também outros frameworks que valem a pena dar uma olhada. O Yii, por exemplo, é um super frame – bate junto ao Zend na minha opinião. Temos também o Phalcon que, embora muitos não o considerem um framework, ele ajuda muito no desenvolvimento e integração com banco de dados

Para finalizar, com minha experiência descobri que não existe o melhor framework, aquele considerado “bala de prata” e que resolve tudo da melhor forma (assim como não existe uma melhor linguagem de programação). Cada um tem suas vantagens e desvantagens, por isso, particularmente, procuro avaliar os pontos descritos acima para escolher um bom frame para cada projeto.

Felipe Oliveira

Mais artigos deste autor »

Graduado em analise de sistemas - Especialista em marketing digital e Usabilidade - desenvolvedor PHP a 10 anos, agilista, empreendedor de negócios digitais, consultor de TI, palestrante


9 Comentários

Fernando Jr
1

Excelente post, gostaria de deixar registrado que o Yii tem uma opção bem interessante, que quando habilitada e feita a conexão com o banco, ele gera forms com CRUD pronto já, o que para alguns pode parecer interessante pela velocidade de desenvolvimento que proporciona.
Tenho colegas que usam o Kohana e que estão satisfeitos, não conheço nada deste cara.
Eu particularmente comecei com o Zend Framework 2 direto, acho um erro as pessoas falarem ‘se você nunca usou frameworks, não vá direto para o Zend’, eu reconheço a exigência e nível do framework, também a curva de aprendizado, mas se você fez um estudo de frameworks para sua aplicação e o Zend pareceu o uso mais ideal para a necessidade, o que lhe impede de estuda-lo e usa-lo, masmo que seja sua primeira viajem com frameworks, pois como diz uma frase que se vê por ai: ‘e não sabendo que era impossível, ele foi lá e fez…’.
Bem, novamente, parabéns pelo post.
Abraço!

Felipe Oliveira
3

O CakePHP tambem possui o Bake, uma funcionalidade fantástica ela cria, views, formulários, relacionamentos de tabelas, models, controllers e até mesmo as validações para o projeto.

Júlio Barbosa
5

Cara, gostei das prioridades de escolha do Framework. Mas, acho que faltou um pouco mais de pesquisa na hora de falar dos frameworks. Se colocar na internet os frameworks mais promissores, Laravel, Phalcon e Symfony2 vem disparado. Não foi dito também as características que os frameworks destacam em seus sites e documentações. Exemplo, Phalcon PHP é o framework de melhor desempenho entre todos, ganhando até de micro framework. Laravel é muito fácil de se desenvolver e com um poderoso administrador de extensões. Symfony2 nem chegou a comentar nada. Pra descrever os frameworks não deveria colocar uma descrição pessoal. Falou pesquisa nisso. Mas, gostei muito das prioridades de escolha.

Lucas
6

Muito obrigado, amigo.
Estou estudando php e estava atras de um conteudo que me auxiliasse a encontrar um framework para começar a dar uma olhada.
abraços.
@Lucas_Raven

Rafael
7

Sobre o CakePHP, tive problemas com a questão do cache. Muitas alterações demoravam a fazer efeito e a opção de desabilitar o cache não funcionava muito bem. Já tiveram este problema? Como fizeram para resolver?

Jorge Nones
8

Ola boa tarde, Sobre o LARAVEL, ferramenta incrível e sensacional, aqui na empresa utilizamos ela nos desenvolvimentos web, ela gera tudo automático, você só faz a model sua classe e instanciado os atributos, a partir disso ela gera o banco de dados através das classes os atributos, ela gera os métodos gets/sets via O.O. formulários, CRUDs, TUDO, ee sem falar dos templetes, importa e exporta diversos tipos de DBs, cria e recrie, para nos da área de php é a ferramenta mais fácil trabalhar, e da gosto de trabalhar utilizando as camadas e O.O., muitos simples ler tutoriais em inglês é muito simples. Quem precisar de material entre em contato comigo. Logo logo sei que ela vai ser a 1°. Já trabalhei com Zend e CODEIGNITER. Mas realizei um projeto em LARAVEL e me surpreendeu.

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!