Phalcon PHP

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?

Frameworks PHP - Reinventar ou não 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.

Benchmark velocidade Phalcon PHP e outros Frameworks

Tempo de resposta:

Phalcon PHP Benchmark 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 😉

  • Matheus

    Gostei! Vou pesquisar sobre e começar a usar futuramente. Eu não gosto de usar frameworks, justamente pelos motivos contras que foi citado no post, mas esse Phalcon me animou, usar C estendendo, é massa!

    • Bruna Goss

      Que legal, Matheus! Quando você começar a utilizar o Phalcon na Umbler venha nos contar 🙂

  • Rafael Almeida

    Phalcon é vida, desempenho absolutamente incrível, documentação ótima!

    • Bruna Goss

      o/

  • Fábio Bachi

    Umbler, que timing! No momento que estou pra desenvolver uma API, vocês me aparecem com o Phalcon. Estava atrás de algum framework pra desenvolvê-la e agora já decidi usar o Phalcon, graças a vocês. Continuem assim 😛

    • Bruna Goss

      Oi, Fábio! Que demais! 🙂 Nos conta como está sendo utilizar o Phalcon! Abraços!

  • Fredi Fotos

    Top Top Hein, Curti muito!

    • Bruna Goss

      Ficamos felizes em saber 🙂

  • Vitor Hugo

    posts muito bons, estou iniciando no desenvolvimento, ainda engatinhando mas estou aprendendo bastante e conseguindo me orientar com o umbler.

    • Bruna Goss

      Oi, Vitor! Que bom saber disso 🙂 Se tiver uma sugestão de conteúdo, nos envie!

  • Carlos Eduardo de Figueiredo

    Existe algum curso desse framework?

  • Angos Studio

    Sabem dizer se para aplicações com um grande número de acessos ele também é recomendado?

    (removi algumas perguntas que vi as respostas na documentação deles 😉 )

    • Bruna Goss

      Olá, pessoal! Nós ainda não usamos Phalcon para uma aplicação com muitos acessos. No entanto, a proposta do Phalcon é justamente a de ser um framework leve, que consiga servir mais requisições em menos tempo, o que uma aplicação com muito acessos se beneficiaria diretamente.. Se você quiser, pode postar essa pergunta no fórum do Phalcon, a comunidade é super ativa e poderá ajudar! 🙂

      Abraços!

  • Tio nélio Do Rincão

    Olá bruna
    Artigo realmente interessante, vou dar uma conferida nesse falcon pois gostei muito dele
    e da quantidade de request.
    Meus amigos, que são mais experientes que eu tbm querem conhecer, sasa, jair, bira e jalmar hehe

    Te agradeço por deixar um pouco de seu tempo para nós
    Att,
    Tio Nélio do Rincão ( TI & DBA )

    • Bruna Goss

      Oi, Tio Nélio! Muito obrigada, fico feliz que você tenha gostado do post 🙂 Convide seus amigos para conhecer: na Umbler, você ganha créditos indicando amigos para testar! Não perde essa!

      Abraços!

  • André Fagundes

    Já desenvolvo há algum tempo com phalconphp e sua performance realmente é muito boa, para quem já conhece o zend, a curva de aprendizado é bastante facilitada. Este é um software que desenvolvi com phalconphp( http://www.incentivgo.com.br ). Vale a pena aprender e desenvolver com ele!!!! Showww!!!

    • alvaro lordelo

      Olá André, estou começando com o phalcon – você tem algum tutorial pra fazer a internacionalização, vi sua aplicação e gostaria de fazer a minha com mais de uma linguagem também.

  • Victor Ramos

    Pena que ainda está no Phalcon 2 e nao possui a extensao no php 7 =(