As discussões sobre usar ou não um framework PHP são vastas. Pesquisar “to use or not to use a PHP framework” no Google nos rendeu 48 300 000 resultados com as mais diversas opiniões. Decidimos perguntar à comunidade PHP e acompanhar as discussões do Quora e Stack Overflow para trazermos alguns dos melhores argumentos sobre o uso de Frameworks.
Reinventar ou não Reinventar a Roda?
Em muitas discussões sobre frameworks PHP, uma frase que acaba sempre aparecendo é: não reinvente a roda (don’t reinvent the wheel). Um dos argumentos mais utilizados para defender o uso dos frameworks é justamente a possibilidade de deixar os desenvolvedores livres para se preocupar com aquilo que realmente fará seus sites/aplicações se destacarem. Por que fazer toda a área de login de uma aplicação do zero se já existe um código pronto, testado e seguro, que realiza essa função? Frameworks podem ser uma mão na roda no desenvolvimento de grandes aplicações, porque já trazem bibliotecas e helpers importantes, evitando que você precise escrever do zero, ou copiar e colar esses itens de outro projeto. O uso de um framework também auxilia na organização do código e torna mais fácil o crescimento do projeto ou da equipe. Por dar uma estrutura que a aplicação precisa para crescer, evita situações de código não documentado e facilita a inclusão de novas pessoas à equipe, já que existe uma curva de aprendizado menor da aplicação quando um novo desenvolvedor entra no projeto.
Prós
Organização do código e de arquivos
Bibliotecas e utilitários
Padrão MVC
Segurança
Menos código e desenvolvimento mais rápido – como cada projeto é baseado na mesma estrutura, fica mais fácil desenvolver
Bom para projetos de desenvolvimento ágil
Comunidade
Performance Tools
Projetos mais estáveis, já que a base é a mesma
Dos motivos contras, a maioria parece estar relacionada à maturidade do framework. Frameworks que não estejam consolidados aumentam a curva de aprendizado, podem apresentar mais vulnerabilidades e, por não terem documentação extensa, poderão causar mais dificuldades na hora de corrigir eventuais problemas. Há quem defenda que aprender um framework é quase aprender uma nova linguagem. Se o projeto for simples e o tempo for curto, talvez seja melhor desenvolvê-lo diretamente. Para quem está começando a desenvolver e busca ganhar experiência, também é melhor evitar o uso de frameworks, justamente para ter controle da linguagem e saber resolver eventuais problemas.
Contras
Curva de aprendizado
Dificuldade para contratar devs com experiência em determinado framework
Frameworks não necessariamente são livres de bugs
Potenciais vulnerabilidades de segurança em frameworks
Uma boa parte do código não será escrita por você, o que poderá trazer uma dificuldade a mais na hora de corrigir algum bug;
Frameworks existem desde o início dos anos 2000: um dos primeiros foi o Moijavi Project, de 2003-2004, que hoje já não está mais ativo. Desde então, diversas opções de Frameworks estão disponíveis, a maioria de forma gratuita, levando a uma nova pergunta: como escolher um framework? Tudo depende do projeto em questão e suas necessidades.
O portal Site Point faz, anualmente uma pesquisa sobre os frameworks mais utilizados. Com 7800 respostas de desenvolvedores de todo mundo, um dos frameworks que têm ganho destaque nos últimos anos é o Phalcon PHP, que vamos explorar nesse post.
Phalcon: novo, mas com potencial
O Phalcon foi lançado em 2012, ou seja, tem apenas cerca de quatro anos de existência. Mesmo assim, ele tem apresentado um crescimento muito positivo, com muitos usuários e uma comunidade crescente ocupada com a melhoria constante deste framework. Atualmente, ele está na versão 2.0.13 e já foi traduzido para, pelo menos, 14 idiomas (inclusive português).
Diferenciais do Phalcon
Existem dois diferenciais principais do framework Phalcon que você precisa conhecer. Em primeiro lugar, ele funciona como uma extensão de servidor web, escrita em linguagem C. Obviamente, isso já é uma grande diferença de arquitetura em relação aos outros frameworks PHP mais usados (como Symfony ou Laravel), que são escritos na própria linguagem PHP.
O uso da linguagem C e o fato de ser usado como uma extensão web fazem com que o Phalcon tenha outro diferencial importante. Ele é considerado o framework mais rápido disponível. A velocidade de execução é maior e ele também consegue lidar com mais solicitações HTTP por segundo, se comparado a outros frameworks escritos em PHP.
Benchmark de rapidez do Phalcon
Para que você veja que a rapidez do Phalcon é real, pesquisamos testes de benchmark comparando-o a outros frameworks. O site Where’s My Keyboard fez um teste em que o Phalcon conseguiu mais de 822 mil solicitações por segundo, mais do que o dobro do segundo colocado, Slim.
O Blog a Way Out também fez seu próprio teste, no qual o Phalcon atingiu 1.622 solicitações por segundo, mantendo um dos menores índices de pico de uso da memória. Já o site oficial do Kotchasan, uma alternativa pouco conhecida de framework PHP originária da Tailândia, também fez testes de benchmarking que colocaram o Phalcon no topo da lista.
Na documentação do Phalcon, é possível encontrar testes que mostram a velocidade maior quando comparado aos frameworks do mercado:
Neste teste, o Phalcon lidera com 2535,82 requests por segundo, mais do dobro do segundo colocado CodeIgniter, com 1059,05 requests por segundo.
Tempo de resposta:
O tempo de resposta do Phalcon também foi considerado muito superior ao dos outros concorrentes, 394 ms frente a 944 ms do segundo colocado, CodeIgniter.
Para ver outros testes de benchmark, acesse a documentação do Phalcon.
Características do Phalcon PHP
Prós
Ele oferece as características clássicas de um framework PHP MVC moderno ( rotas, controladores, templates, ORM, cache, etc.), então não há nada de especial quando comparado com outros frameworks, exceto por sua velocidade.
Diferentemente da maioria dos frameworks PHP, Phalcon é implementado como uma extensão de servidor web escrito em C. Uma grande desvantagem para o PHP é que em cada solicitação, todos os arquivos são lidos a partir do disco rígido, traduzidos, e então executados. Isso ocasiona uma perda de desempenho importante quando comparado com outras linguagens como Ruby (Rails) ou Python (Django). Com Phalcon, todo o framework já está em memória, não havendo a necessidade de processar todos os arquivos.
Outra vantagem de ser uma extensão, é a quantidade de arquivos. Laravel, por exemplo, que é inscrito completamente em PHP, inclui vários pacotes via composer. Já o Phalcon é somente uma extensão a mais no servidor.
Contras
Pode haver uma curva de aprendizado maior
Caso algo dê errado, você poderá ter que debugar código em C (versão 2.0 ja utiliza Zephir)
Projetos desenvolvidos em Phalcon
As vantagens do Phalcon atraíram desenvolvedores e levaram ao surgimento de aplicativos web bastante interessantes. Alguns exemplos de projetos desenvolvidos em Phalcon são:
O site www.delete.im – que permite enviar uma mensagem que se auto deleta após, no máximo, 99 segundos;
O site www.photofunia.com – que permite criar vários efeitos divertidos com suas fotos.
Projetos em Phalcon na Umbler
A extensão do Phalcon já está ativa por padrão na Umbler. Crie uma conta gratuita e faça um teste, depois nos diga o que achou 😉