Qual o momento certo para usar um framework no PHP?
Artigo escrito para o PHP PR em 18 de abril de 2014
Se tem uma coisa que a comunidade do PHP tem de sobra, são os frameworks. Temos uma variedade gigantesca de opções na hora de aprender ou usar um destes, mas a questão é: será que eles são mesmo necessários?
Vamos começar do começo: o que é um framework?
“Um framework é um conjunto de componentes integrados que auxiliam a criar uma arquitetura reutilizável para uma família de aplicações relacionadas.” – Douglas C. Schmidt
Como isso é aplicado no PHP?
Se você já é familiarizado com desenvolvimento orientado a objetos, fica mais fácil compreender: imagine um pacote com algumas classes que te provê métodos globais do seu sistema.
Basicamente, esse conjunto de classes possui métodos para você usar em todas as páginas do sistema, seja um formulário de contato, seja uma listagem de produtos, a geração de códigos de barras, etc.
Este é o trabalho de um framework: facilitar ao máximo o desenvolvimento do sistema. Esses métodos pré-existentes agilizam (e muito) no desenvolvimento, então você perde menos tempo criando funções e tem mais tempo para pensar em outros pontos do software, como o modelo de negócios, por exemplo, e claro, a entrega também é agilizada.
Até aí tudo muito bem, tudo muito bom, mas como nada é perfeito, os frameworks também têm seu lado negativo:
Se você não tem um conhecimento mediano da core do PHP, o uso de frameworks pode ser uma péssima ideia, pelo simples fato de que, se você deixar de escrever as funções básicas dos seus sistemas porque estas já existem no seu framework, acaba nunca compreendendo realmente o que estas funções fazem, e se por acaso, algum dia você precisar desenvolver um software sem o uso de frameworks, terá alguns probleminhas.
Um outro ponto negativo, é que alguns (veja bem, alguns) frameworks são muito grandes, então dificilmente você fará uso de todos os módulos disponíveis, mas mesmo assim estes módulos serão carregados e estarão prontos para o uso. Isto significa que seu site se tornará lento, consumirá muito espaço no servidor sem necessidade. Num mundo perfeito, os usuários ficariam aguardando pacientemente até aquele site lento carregar nos seus smartphones, tablets ou PCs. Mas é claro que isso não acontece.
Eu diria que o primeiro requisito para pular para o uso de um framework, é dominar toda a base do PHP. Claro, este não pode ser o único ponto a ser analisado, isto é, antes de iniciar qualquer projeto com frameworks, se pergunte: “este sistema precisa ser baseado em um framework?”.
Um site institucional cujo a única página que tem interação server-side é uma página de contato precisa ser baseado em um framework?
E um site que seja inteiramente server-side, que gerencia todos os departamentos de uma empresa grande, precisa ser baseado em um framework?
Então a dica é essa: antes de passar a desenvolver com frameworks, estude muito bem a linguagem em si, e mesmo assim, é necessário saber o momento certo de se usar um framework, são muitos fatores que podem definir isso, e depende de cada projeto, mas tenha sempre em mente que frameworks podem interferir diretamente no desempenho do seu sistema, e isso deve ser evitado ao máximo.
Se quiser saber mais sobre frameworks, este é um bom material:
Douglas C. Schmidt – Introdução a Padrões e Frameworks (em inglês)
E aqui um site com comparações dos frameworks mais utilizados no PHP:
phpframeworks.com