Uncategorized

Qual framework PHP é o melhor para você?

qual-framework-php-e-o-melhor-para-voce

1459870313php-logo-svgPHP é uma das linguagens de programação mais populares em todo o mundo e o recente lançamento PHP 7 fez esta linguagem de programação server-side melhor e mais estável do que nunca.

PHP é amplamente utilizado em grandes projetos. Facebook, por exemplo, utiliza PHP para manutenção e criação de seus sistemas internos. WordPress também usa PHP para alimentar seu sistema que, por sua vez, está alimentando mais de 26% da web. Atualmente, o PHP está em mais de 82% dos sites.

Neste artigo, vamos olhar para três dos frameworks mais populares para PHP: Symfony, Laravel e Yii. Vamos examinar como eles se comparam para ajudar você a decidir qual deles pode ser o mais adequado para suas necessidades.

Porque usar um framework?

  • Qual é o sentido de usar um framework em vez de o PHP bruto para desenvolver sua aplicação? Alguns benefícios da utilização de um framework incluem:
  • Um framework PHP torna o desenvolvimento mais rápido. Por exemplo, você não tem que escrever consultas complexas para recuperar os dados do banco de dados. Frameworks PHP fornecer operações CRUD.
  • Frameworks permitem que desenvolvedores redimensionem sistemas facilmente.
  • A manutenção do código é mais fácil do que com uma aplicação PHP baunilha. O código do aplicativo é conciso e fácil de trabalhar.
  • O modelo MVC garante o rápido desenvolvimento.
  • Frameworks são melhores em segurança de aplicações web contra ameaças de segurança comuns.
  • O princípio “não repita a si mesmo” (DRY) garante que o mínimo de código tenha o máximo impacto.

Os benefícios acima referidos são significativos o suficiente para não serem ignorados. Mesmo que o PHP simples possa ser usado para criar qualquer aplicativo, os padrões atuais de desenvolvimento requerem ferramentas e habilidades de gerenciamento de tempo para atender a demanda do mercado.

Como escolher um framework PHP?

Responder a estas perguntas podem ajudar a escolher um framework:

  • Quais são as características e funcionalidades do framework? (Será que oferece o que eu preciso?)
  • Qual é a curva de aprendizagem do quadro?
  • O quão escalável é o quadro?
  • O framework ainda é desenvolvido e mantido ativamente pela equipe principal?
  • Será que o framework oferece apoio a longo prazo (suporte por tempo estendido) ?
  • Será que o quadro tem um forte apoio da comunidade?

Symfony, Laravel e Yii

Antes de mergulharmos em detalhes técnicos, aqui está uma visão geral dos candidatos:

Symfony

PHP SymfonySymfony é um conjunto de componentes PHP reutilizáveis, permitindo ao desenvolvedor criar aplicações escaláveis e de alto desempenho. Com 30 componentes para escolher, o desenvolvedor tem total liberdade para experimentar e trabalhar em um ambiente RAD. APIs Symfony também permitem uma fácil integração com aplicações de terceiros, e pode ser usado com frameworks de front-end populares, como AngularJS.

Muitos projetos populares, incluindo Drupal e phpBB, usam o framework Symfony. Na verdade, Laravel, o framework PHP mais popular, foi construído a partir do Symfony.

Laravel

Laravel, que é conhecido como o framework PHP para artesãos da web, oferece uma excelente comunidade e ganha comolaravel PHP o framework mais popular. Um dos principais desenvolvedores Laravel no Livecoding.tv é Sfiskell.

Em maio 2015, Laravel anunciou que a versão 5.1 vai oferecer apoio a longo prazo por dois anos. A versão 5.2 foi lançada em dezembro de 2015. Muitas empresas de hospedagem fornecem suporte Laravel e soluções de hospedagem para aplicações Laravel. Confira o site BuiltWithLaravel para ver grandes exemplos de projetos.

Yii

yii PHPCriado por Qiang Xue em 2008, Yii é um framework rápido, seguro e de alto desempenho. Yii utiliza o gerenciador de dependência Composer para PHP para lidar com diferentes dependências e instalações. Yii também é o framework PHP mais rápido graças à técnica de carregamento lento.

Outra grande característica do Yii é a integração com jQuery. A integração permite que os desenvolvedores de front-end abracem o quadro rapidamente. Semelhante ao Symfony, Yii também utiliza componentes para permitir o desenvolvimento rápido de aplicativos.

Como eles se comparam?

Todos os três frameworks são ótimos para a construção de aplicações Web 2.0, mas cada quadro tem uma finalidade diferente. Vamos ver suas características e como eles se comportam.

Motores de templates

Motores de templates minimizam o esforço do desenvolvedor e proporcionam uma melhor funcionalidade em escrever código front-end. Motores de templates fornecem recursos como escapamento HTML automático e filtros, preenchendo a lacuna deixada pelo PHP cru.

Sistema Twig para Symfony

Twig é um sistema de templates moderno para PHP. Symfony utiliza Twig a sua vantagem e permite que os desenvolvedores escrevam código limpo, conciso e a capacidade de fazer mais do que com PHP cru. Por exemplo, leva-se o seguinte código detalhado para escrever o escape:

<?php echo $var ?> <?php echo htmlspecialchars($var, ENT_QUOTES, ‘UTF-8’) ?>

Twig faz o mesmo com o seguinte código:

{{ var }} {{ var|escape }} {{ var|e }} {# shortcut to escape a variable #}

Veja o site do Twig para saber mais informações.

Sistema Blade para Laravel

Ao contrário de outros sistemas de template, Blade permite usar código PHP nas visualizações. Além disso, Blade tem zero sobrecarga para o desempenho da aplicação, porque os arquivos de visualização Blade são armazenados com a extensão .blade.php. Todo o código nos arquivos de visualização é convertido em PHP bruto durante o processamento.

Sistema padrão de Yii

Por padrão, o Yii não utiliza sistema de templates de terceiros, mas isso não significa que ele não tem suporte a sistemas de templates. A escolha do sistema de templates depende da equipe de desenvolvimento. Twig e Smarty são recomendados. Symfony usa Twig, por isso, se você já tiver usado Symfony no passado, você pode querer utilizar Twig para seu próximo projeto Yii.

Não há um vencedor claro aqui. Todos os três frameworks usam motores de templates para uma melhor codificação de front-end e manutenção. Uma pequena vantagem para Yii é que o quadro não tem um sistema de templates pré-definido.

Diferenças

Cada framework é criado de maneira diferente. Symfony funciona em componentes reutilizáveis e oferece a melhor modularidade. Symfony também utiliza o modelo e controlador para o desenvolvimento de uma aplicação web, o que pode parecer enferrujado para muitos novos desenvolvedores, mas funciona. Além disso, Symfony é um bom exemplo de framework modular. Você pode usar os 30 componentes fornecidos pelo Symfony em seu projeto de forma modular.

Symfony pode ser usado para o desenvolvimento rápido de projetos complexos. Mesmo que haja um debate sobre qual framework é melhor para projetos complexos, Symfony demostra uma melhor capacidade de lidar com complexidade em comparação com outros frameworks. Yii também utiliza componentes, mas não é tão modular como Symfony. O Laravel não fornece uma abordagem modular tão acentuada como os outros dois quadros.

Se você está à procura de um frame modular, escolha Symfony. Caso contrário, Laravel e Yii são ambos grandes escolhas.

Instalação

Os três frameworks fornecem vários procedimentos de instalação. Se você estiver usando Composer para trabalhar com pacotes, você vai ficar feliz em saber que todos os frameworks podem ser instalado via Composer.

Para Symfony, o papel do Composer é mais crucial. O manejamento de componente é o melhor feito usando o Composer PHP dependency manager.

Há outras maneiras de instalar os respectivos frameworks. Por exemplo, você pode instalá-los usando o método de arquivo simples.

Após a instalação, Yii fornece-lhe um aplicativo web e um modelo básico para trabalhar. Symfony2 também fornece um aplicativo de demonstração para começar.

Laravel também é fácil de instalar usando Composer ou via Laravel Installer. Confira o guia de instalação do Laravel para mais detalhes.

Rápido desenvolvimento

Do ponto de vista da empresa ou do cliente, poder fornecer rapidamente uma aplicação ao mercado para atender a demanda dos consumidores e vencer a concorrência é importante. Symfony se destaca por ser uma estrutura robusta com uma comunidade forte. Laravel está crescendo rapidamente, mas ainda tem um caminho a percorrer antes de ser considerada a escolha de facto para o desenvolvimento PHP. Por outro lado, se você não tem conhecimento de quaisquer frameworks PHP e quer começar o mais rápido possível, considere Laravel. Laravel tem uma curva de aprendizagem fácil e você vai encontrar muitos tutoriais on-line para ajudar você a começar. Yii fornece scaffolding para a geração de código e desenvolvimento mais rápidos.

Performance

O desempenho de qualquer aplicativo só é importante se é um aplicativo em tempo real usando dados críticos. Quantas aplicações web dependem de alto desempenho? Não muitas, mas o desempenho dos frameworks pode desempenhar um papel crucial em muitos projetos.

As redes sociais são ótimos exemplos de eventos em tempo real e Jadson, streamer do Livecoding.tv,  construiu uma rede social móvel usando Yii2. Quando se trata de escolher o melhor framework para a codificação de uma aplicação de alta performance, Yii se destaca como o framework PHP mais rápido.

O desempenho Laravel é discutível. Dos três, é mais lento, mas será que isso importa? Você vai encontrar recursos on-line para acelerar o desempenho, incluindo um guia no GitHub para fazer a sua aplicação Laravel mais rápida.

Suporte para base de dados

Symfony 2 oferece melhor suporte de banco de dados. Você pode trabalhar com uma variedade de banco de dados, incluindo NoSQL e DynamoDB. Yii e Laravel são também úteis a este respeito, mas eles oferecem menos suporte a bases de dados do que Symfony. Veja a tabela:

Framework Laravel Yii Symfony 2
Base de dados SQLite

MySQL

PostgreSQL

Redis

Microsoft BI

MongoDB

MySQL

SQLite

Microsoft BI

Oracle

PostgreSQL

MongoDB

Microsoft BI

MongoDB

MySQL

NoSQL

PostgreSQL

CouchDB

DynamoDB

GemFire

GraphDB

MemBase

MemCacheDB

Oracle

Apache Jackrabbit

.

Comunidade e recursos

Um grande preditor para a longevidade de um framework open source é a força da sua comunidade. Todos os três têm comunidades sólidas, embora Symfony seja um pouco mais maduro. Comunidades evoluem, então predizer a dinâmica das comunidades no futuro é um desafio.

Quando se trata de material de aprendizagem e de documentação, Laravel se destaca, embora Symfony e Yii não estejam muito para trás:

Extensibilidade

Frameworks são estruturas que podem ser estendidas com extensões ou pacotes, melhorando a sua funcionalidade e alcance. Quando se trata de extensões, Laravel é o vencedor. Packalyst, um diretório de pacotes Laravel, oferece mais de 9.000 pacotes. Yii e Symfony, por outro lado, oferecem mais de 2000 extensões e mais de 2800 bundles, respectivamente. Com três vezes o número de extensões, Laravel é o melhor neste quesito.

Semelhanças

Nós vimos as diferenças entre os quadros. Agora vamos ver suas semelhanças:

  • Todos os três são frameworks PHP full-stack e oferecem as funcionalidades para a criação de aplicações web, desde o código front-end até back-end de recuperação de dados.
  • Os projetos dos três são de código aberto e seu código-fonte pode ser encontrado no GitHub, tornando mais fácil para que todos possam contribuir:
  • Os frameworks são bem documentados e apoiado por uma grande comunidade.
  • Os três suportam ORM (Mapeamento objeto-relacional). ORM é altamente favorecido para escrever código orientado a objetos para a sua aplicação.
  • Eles são robustos, seguros e confiáveis para a criação de aplicações Web 2.0.

Ainda indeciso? Confira este resumo:

Symfony:

  • Oferece suporte por tempo extendido
  • Vem com muitos recursos
  • Atualmente, é o framework mais estável
  • É baseado em componentes e apresenta grande extensa modularidade
  • Tem uma grande comunidade com muitos recursos de aprendizagem.

Yii:

  • Vem com suporte a Ajax
  • Ótimo para desenvolver aplicações em tempo real por oferecer operações mais rápidas
  • Altamente extensível
  • Manipulação de erros no local,
  • Ótimo para criar RESTful Web Services
  • Tem uma grande comunidade com muitos recursos de aprendizagem.

Laravel:

  • O framework PHP mais popular desde 2015
  • Suporte a Composer para gerenciamento de pacotes
  • Faz testes de unidades muito bem
  • Oferece milhares de pacotes para estender a funcionalidade
  • Tem uma grande comunidade com muitos recursos de aprendizagem.

Conclusão

Na batalha de Symfony vs. Laravel vs. Yii, todos os três frameworks PHP são excelentes opções que proporcionam um ambiente de desenvolvimento full-stack para os desenvolvedores. Para mim, Laravel é um vencedor que está a emergir como uma estrela sem nenhum sinal de parar.

Ainda assim, Symfony e Yii são ambos excelentes frameworks. Symfony é bem estabelecido e com uma comunidade maior, mais madura. Yii é um framework único que é robusto e seguro.

Para ver os frameworks em ação, confira o que os desenvolvedores estão criando com eles no Livecoding.tv, que tem canais de Symfony, Yii e Laravel. Os desenvolvedores também estão disponíveis no chat ou no Skype durante as sessões de streaming. Siga os desenvolvedores, faça perguntas e obtenha respostas em tempo real.

Recursos adicionais

Symfony2 vs Yii2: Which development framework should you choose?

10 PHP Frameworks for Developers

It’s Laravel 5.1 for Enterprise Development

Avatar
About author

I, Dr. Michael J. Garbade is the co-founder of the Education Ecosystem (aka LiveEdu), ex-Amazon, GE, Rebate Networks, Y-combinator. Python, Django, and DevOps Engineer. Serial Entrepreneur. Experienced in raising venture funding. I speak English and German as mother tongues. I have a Masters in Business Administration and Physics, and a Ph.D. in Venture Capital Financing. Currently, I am the Project Lead on the community project -Nationalcoronalvirus Hotline I write subject matter expert technical and business articles in leading blogs like Opensource.com, Dzone.com, Cybrary, Businessinsider, Entrepreneur.com, TechinAsia, Coindesk, and Cointelegraph. I am a frequent speaker and panelist at tech and blockchain conferences around the globe. I serve as a start-up mentor at Axel Springer Accelerator, NY Edtech Accelerator, Seedstars, and Learnlaunch Accelerator. I love hackathons and often serve as a technical judge on hackathon panels.