Descubra as novidades e melhorias do Symfony 4, o framework PHP
O versão 4 do Symfony, foi lançada em 30 de novembro de 2017. Com uma nova filosofia e menor número de dependências, a nova versão está muito melhor que as anteriores.
Symfony é um framework web escrito em PHP que segue o modelo MVC (model-view-controller). Neste artigo apresento um resumo sobre as alterações mais importantes feitas na nova versão. Este post é para você que já está familiarizado com as versões anteriores e quer se atualizar com a nova.
Nova filosofia
A nova filosofia do Symfony é partir do simples para se tornar complexo. A ideia é deixar o mínimo de dependências obrigatórias e, conforme a necessidade, tornar mais complexo. Ele deixa como escolha do desenvolvedor, instalar os bundles (plugins) necessários, o que torna este framework uma escolha para todos os tamanhos de aplicações, desde pequenas a robustas. Podendo ser utilizado desde API’s e sites simples a sistemas complexos.
Novo Symfony
Internamente o Symfony 4 é o mesmo que da versão 3 só que com códigos obsoletos removidos, mais a adição do Symfony Flex (explico mais adiante) e com todas as melhorias da versão 3.4.
Externamente está muito mais clean. As grandes alterações foram feitas para melhorar a experiência de desenvolvimento, desde o processo de instalação, inclusão e remoção de bundles, até o próprio código. Com a nova versão a ferramenta prova que é possível esconder a complexidade.
Instalação
A instalação é um simples comando de composer. Quem já utilizou este frameworks estará familiarizado.
composer create-project symfony/skeleton symfony4
As 5 dependências no composer.json resultam nos seguintes pacotes:
Somente os pacotes necessários para executar o framework, como podem perceber, não vem ORM, TWIG, Swiftmailer, entre outros que vinham nas outras versões. Assim, você programador instale somente o que julgar necessário. Nas versões anteriores, se fosse desenvolver uma API, por exemplo, teríamos que conviver com o TWIG, mesmo ele não sendo necessário, fazendo com que este framework não ser uma escolha para esse tipo de projeto.
Estrutura de pastas
Aqui mais uma vez é possível ver, o quão limpa está a instalação:
As alterações mais importantes são:
- A pasta config saiu de dentro da pasta app, e está na raiz do projeto.
- O arquivo params.yml, não é mais utilizado, dando lugar a variável de ambiente na raiz do projeto.
- A pasta src, não tem mais nenhum bundle instalado.
- A pasta web deu lugar a pasta public.
- O arquivo app_dev.php não existe mais, somente o arquivo index.php, que consegue identificar o ambiente de desenvolvimento e de produção.
- A pasta var, é a pasta onde são mantidos cachês e logs.
- As configurações de bundles não são mais definidos no arquivo Kernel e sim em config/bundles.php.
- As views são mantidas na pasta templates e não mais em App/Resources/Views.
Symfony Flex
O Symfony flex é um utilitário que modifica certos pontos do código que envolvem manipulação de pacotes. Ele veio para auxiliar e facilitar determinados processos como, por exemplo, a instalação/desinstalação de bundles de forma automática. Ele vai agir sempre na instalação, remoção ou update de pacotes flex com o composer. Antes a instalação de bundles e extensões eram muitas vezes problemática: era preciso registar o bundles manualmente na classe AppKernel, adicionar a configuração ao arquivo config.yml e ainda seguir a lista de instalação – que era diferente para cada tipo de bundle – o que o tornava muitas vezes inviável a instalação. Com ele esse processo é todo feito de forma automática.
A lista de pacotes oficiais, é encontrado em: https://github.com/symfony/recipes e a lista de pacotes desenvolvidos pela comunidade em: https://github.com/symfony/recipes-contrib .
O symfony flex,suporta aplicações a partir da versão 3.3, . Mas para utilizá-lo é exigido que as aplicações usem a estrutura de pasta da versão 4, então, a estrutura deve ser atualizada de forma manual.
Recipes
Cada instalação de pacote segue uma ‘receita’ definida nos repositórios do Symfony Flex Recipes.
Bundles: diz ao flex em quais ambientes esse bundle deve ser habilitado automaticamente.
Copy-from-recipes: permite que a receita copie arquivos e diretórios para sua aplicação.
Env: adiciona novas variáveis de ambiente na aplicação.
Aliases: permite a instalação de pacotes utilizando nomes curtos, fáceis de lembrar. (composer req mailer – nesse caso).
Essas instruções ficam definidas no arquivo manifest.json, e também são utilizadas pelo Flex ao desinstalar o bundles. Exemplo: composer remove mailer, irá desfazer todas as mudanças.
Maker Bundle
Nas versões 2 e 3 tínhamos o SensioGenerateBundle, que nós dava alguns comandos úteis no console. Na versão 4 ele foi substituído e melhorado pelo MakerBundle. Quem já trabalha com o Laravel vai reconhecê-lo e para instalá-lo basta digitar:
composer require maker
O que nós dá a lista de geradores abaixo, que facilita a criação de Controller, Command entre outros.
Links uteis
Documentação: https://symfony.com/doc/current/index.html
Medium do Fabien Potencier (CEO da SensioLabs – mantenedora do Symfony): https://medium.com/@fabpot
Video demo de criação de API com Symfony Flex: https://www.youtube.com/watch?v=o9N1nOYfAl4
Essas foram as principais mudanças. Ele ainda é um framework robusto, e com grande potencial e com a nova versão ficou muito mais simples e leve. Ele veio para facilitar o desenvolvimento e para ser utilizado em todos os tamanhos de projetos. Espero que tenham gostado e que o utilizem.
About author
Você pode gostar também
Guia Completo: Como Utilizar o Vagrant para Gerenciar Máquinas Virtuais
Introdução Vagrant é uma ferramenta para criação e gerenciamento de máquinas virtuais de forma automatizada. Ele é usado principalmente para fins de desenvolvimento, permitindo que seja criado um ambiente de
Desvendando o Zend Framework 3: O guia definitivo para desenvolvedores PHP
Se você está lendo este artigo provavelmente você já desenvolveu ou pretende desenvolver algum projeto de software. Talvez você nunca tenha usado um framework mesmo que não o Zend antes
Moodle – Descomplicando a instalação
Caro leitor, nesse artigo vamos tentar descomplicar a instalação do ambiente virtual de aprendizado Moodle para quem está iniciando o uso desta plataforma. Para isso, utilizaremos o Vagrant para provisionar