O que é o Symfony Flex e como ele funciona \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 21 Horas 

 07 Min 

 06 Seg 

   Tempo restante da oferta: 21 07 06 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) O que é o Symfony Flex e como ele funciona  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

# O que é o Symfony Flex e como ele funciona

 Nesse post falaremos sobre os principais conceitos do Symfony Flex. Veremos desde o início como ele funciona, qual seu papel na criação da estrutura do Symfony e como ele pode nos ajudar no processo de gerenciamento de dependências do projeto.

 [ Elton Fonseca ](https://www.treinaweb.com.br/blog/autor/elton-fonseca) 7 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/07/03163125/SYMFONY-FLEX.png)  

O [Symfony](https://www.treinaweb.com.br/blog/o-que-e-symfony/ "Symfony") é um dos [frameworks](https://www.treinaweb.com.br/blog/para-que-serve-um-framework/ "frameworks") mais utilizados na [linguagem PHP](https://www.treinaweb.com.br/blog/?p=9614&preview=true "linguagem PHP"). Ele possui grande importância no ecossistema, pois além da utilização direta do framework, diversas outras ferramentas e até frameworks utilizam seus componentes como base de desenvolvimento. Mesmo com tanta relevância o Symfony não era tão falado na comunidade brasileira, porém com as novidades apresentadas nos últimos tempos ele voltou a ganhar bastante destaque. Inclusive, prova disso é o evento oficial da Symfony que aconteceu em São Paulo.

Um dos recursos mais interessantes apresentados pela equipe do Symfony é o Flex. Ele automatiza o processo de configuração das dependências no momento da instalação. Isso possibilita ao desenvolvedor começar o projeto com o mínimo possível de dependencias, algo parecido com um [micro framework](https://www.treinaweb.com.br/blog/o-que-e-um-micro-framework/ "micro framework"), e adicionar novas dependencias de forma muito fluida até chegar a uma estrutura parecida com um framework full stack.

[  ![Symfony - Gerenciando aplicações com Symfony Flex](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/symfony.svg)   Curso Symfony - Gerenciando aplicações com Symfony Flex Conhecer o curso ](https://www.treinaweb.com.br/curso/symfony-gerenciando-aplicacoes-com-symfony-flex)

## O que é Symfony Flex

O Symfony Flex é um plugin para composer. Ele automatiza os principais processos na hora da criação do projeto e instalação das dependências. Pode ser usado a partir da versão 3.4 do Symfony e passou a ser usado por padrão a partir da versão 4. O Flex altera o comportamento padrão de alguns dos comandos do Composer para permitir a automatização das tarefas de gerenciamento do projeto.

Quando realizamos a instalação de um novo pacote do composer, o Symfony Flex verifica dentro de um repositório próprio se existe alguma automatização correspondente a essa dependência, se existir ele executa as ações definidas.

## O que são Recipes

Recipe (receita) é o nome dado ao conjunto de arquivos responsável pela automatização do processo de instalação de uma dependência específica. As instruções são definidas dentro de um arquivo chamado ` manifest.json` que fica dentro do repositório do Flex, veja um exemplo abaixo:

```json
{
    "bundles": {
        "Symfony\Bundle\DebugBundle\DebugBundle": ["dev", "test"]
    },
    "copy-from-recipe": {
        "config/": "%CONFIG_DIR%/"
    }
}

```

O recipe acima está pedindo para adicionar um novo bundle no arquivo de configuração e copiar a pasta config de dentro do repositório do Symfony Flex para o projeto. Esse arquivo faz parte do recipe de debug [https://github.com/symfony/recipes/blob/master/symfony/debug-bundle/4.1/manifest.json](https://github.com/symfony/recipes/blob/master/symfony/debug-bundle/4.1/manifest.json "https://github.com/symfony/recipes/blob/master/symfony/debug-bundle/4.1/manifest.json")

Ao executar essas tarefas, o Flex evita que o desenvolvedor necessite executar manualmente, diminuindo a chance de erro e a complexidade de instalação de novos pacotes.

## Repositório de recipes

O Symfony Flex possui 2 repositórios de recipes. O primeiro é o repositório oficial onde somente projetos da equipe do Symfony são colocados:

![repositorio github symfony recipes](https://dkrn4sk0rn31v.cloudfront.net/2019/07/02180910/repositorio-oficial-symfony-recipes.png)

O segundo é o repositório contrib onde qualquer pessoa pode submeter um recipe para automatizar as configurações do seu bundle.

![repositorio contrib symfony](https://dkrn4sk0rn31v.cloudfront.net/2019/07/02181129/repositorio-contrib-symfony-recipes.png)

Ainda é possível criar repositórios privados onde podemos colocar as recipes do Flex que serão usadas somente dentro dos nossos projetos.

## Como o Flex cria a estrutura da aplicação Symfony na instalação

[  ![Symfony - Fundamentos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/symfony.svg)   Curso Symfony - Fundamentos Conhecer o curso ](https://www.treinaweb.com.br/curso/symfony-fundamentos)

## Como instalar novas dependências no projeto

Uma vez que temos uma aplicação que utiliza o Flex podemos facilmente instalar novas dependências e se beneficiar das automatizações. O Symfony possui uma página onde podemos consultar todos os recipes tanto oficiais quanto do repositório de contrib [https://flex.symfony.com](https://flex.symfony.com "https://flex.symfony.com"), vamos procurar por twig:

![busca de recipes](https://dkrn4sk0rn31v.cloudfront.net/2019/07/02181154/busca-de-recipes-symfony.png)

Note que temos vários recipes relacionados ao twig. Vamos instalar o pacote **symfony/twig-bundle**.

```text
composer require symfony/twig-bundle

```

Se tudo der certo o resultado final será parecido com esse:

![terminal com resultado pacote symfony](https://dkrn4sk0rn31v.cloudfront.net/2019/07/02183915/instalando-pacote-com-symfony-flex.png)

Note que após instalar o pacote do composer no projeto ele executou o recipe. Ao fazer isso o Flex configurou todos os detalhes necessários para o Twig funcionar no seu projeto. Podemos ver isso na prática se olharmos no Git as alterações realizadas:

![alterações git realizadas](https://dkrn4sk0rn31v.cloudfront.net/2019/07/08231615/git-diff-instalacao-twig.png)

## Apelidos para os pacotes do Flex

Alguns pacotes possuem Aliases (apelidos). Se notar o pacote que instalamos verá que ele possui alguns nomes definidos:

![alias de recipe symfony](https://dkrn4sk0rn31v.cloudfront.net/2019/07/02181234/alias-de-recipe-symfony.png)

O principal objetivo do alias é facilitar na hora de instalação, podemos fazer simplesmente:

```text
composer require twig

```

Ou

```text
composer require template

```

Se estiver dentro de uma aplicação que não utiliza o Flex, o composer não vai encontrar esses pacotes, pois o padrão para identificação de pacotes do composer é `nome-vendor/nome-pacote`. Usar apelidos só é possível graças ao Symfony Flex e em pacotes que possuem Recipes.

[  ![Symfony -  Formulários e Validações](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/symfony.svg)   Curso Symfony - Formulários e Validações Conhecer o curso ](https://www.treinaweb.com.br/curso/symfony-formularios-e-validacoes)

## Prefetch e download simultâneo

Quando usamos o Flex ele adiciona 2 funções muito interessantes ao composer:

- Prefetch - Ele baixa todos os pacotes necessários antes de iniciar a instalação
- Download Simultâneo – O composer por padrão baixa uma dependência por vez, com uso do Flex ele passar a realizar o download ao mesmo tempo de vários pacotes, tornando mais rápido o processo.

O interessante é que se instalarmos o Flex globalmente no sistema operacional esses 2 recursos passam a ser usados em qualquer projeto, mesmo que não utilize o Symfony. Para instalar o Flex global basta executar:

```text
composer global require symfony/flex 

```

## Conclusão

O Flex torna o gerenciamento das dependências de uma aplicação muito mais simples, rápido e seguro. Uma vez que remove a necessidade de configuração manual por parte do desenvolvedor. Além disso ele ainda conta com uma série de recursos avançados que facilitam o trabalho diário de manutenção de aplicações Symfony.

Caso queira aprofundar seus conhecimentos abordamos o assunto em diversas ocasiões [utilizando o Symfony](https://www.treinaweb.com.br/blog/tag/symfony/ "utilizando o Symfony") aqui no blog, confira!

[  ![Desenvolvedor Symfony Full-Stack](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/symfony.svg)   Formação Desenvolvedor Symfony Full-Stack Conhecer a formação ](https://www.treinaweb.com.br/formacao/desenvolvedor-symfony-full-stack)

- [ #Symfony ](https://www.treinaweb.com.br/blog/tag/symfony)
- [ #Symfony Flex ](https://www.treinaweb.com.br/blog/tag/symfony-flex)
- [ #composer ](https://www.treinaweb.com.br/blog/tag/composer)

Autor

 ![Elton Fonseca](//secure.gravatar.com/avatar/2cee05645357ced0841ce76ba5569c72?d=mm)

## Elton Fonseca

 Professor e desenvolvedor. Formado em análise e desenvolvimento de sistema, pós graduado em engenharia e arquitetura de software. É autor de cursos em diversos temas, como, desenvolvimento back-end, cloud computing e CMSs. Nas horas vagas adora estudar sobre o mercado financeiro, cozinhar e brincar com pequeno Daniel. [@eltonfonsecadev](https://twitter.com/eltonfonsecadev) 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/elton-fonseca)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/06/10212549/O-QUE-É-SYMFONY-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     8 anos atrás

    ##  [ O que é Symfony? ](https://www.treinaweb.com.br/blog/o-que-e-symfony) 

     Neste artigo veremos o que é Symfony e suas principais características. Vamos falar sobre sua história, o padrão estrutural MVC, componentes, tipos de estruturas de projeto, além de ciclo de atualização e suporte.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/09/10155418/recipes-symfony-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Como criar recipes do Symfony Flex e enviar para o repositório ](https://www.treinaweb.com.br/blog/como-criar-recipes-do-symfony-flex-e-enviar-para-o-repositorio) 

     Aprenda a criar recipes do Symfony Flex personalizados para automatizar as configurações de bundles. Além disso, o post também mostra como enviar o recipe para o repositório e testar na prática.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/08/19184020/symfony-repositorio-privado-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Como criar repositórios privados do Symfony Flex ](https://www.treinaweb.com.br/blog/como-criar-repositorios-privados-do-symfony-flex) 

     Aprenda como criar repositórios do Symfony Flex gratuitamente para guardar os Recipes usados em seus projetos privados.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/06/11153116/symfony-projeto-e-crud-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     8 anos atrás

    ##  [ Iniciando com Symfony: Como criar o projeto e seu primeiro CRUD ](https://www.treinaweb.com.br/blog/iniciando-com-symfony-como-criar-o-projeto-e-seu-primeiro-crud) 

     Nesse artigo veremos como criar o primeiro projeto no Symfony. Falaremos sobre qual tipo de estrutura escolher dependendo da aplicação e como criar o primeiro CRUD utilizando o comando make.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/12/o-que-e-twig-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     6 anos atrás

    ##  [ O que é Twig? ](https://www.treinaweb.com.br/blog/o-que-e-twig) 

     Veja neste artigo o que é Twig.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/06/14170401/COMANDOS-SYMFONY-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     8 anos atrás

    ##  [ Principais comandos do Symfony CLI ](https://www.treinaweb.com.br/blog/principais-comandos-do-symfony-cli) 

     Nesse artigo falaremos sobre o utilitário de linha de comando symfony. Veremos como realizar a criação de projetos, utilizar o servidor de desenvolvimento, executar comandos da aplicação e outros recursos.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/12/13150804/template-engine-1-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     7 anos atrás

    ##  [ O que é Template Engine? ](https://www.treinaweb.com.br/blog/o-que-e-template-engine) 

     Veja neste artigo o que é Template Engine e as principais opções do mercado.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/08/o-que-sao-extensoes-no-php-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     6 anos atrás

    ##  [ O que são Extensões no PHP ](https://www.treinaweb.com.br/blog/o-que-sao-extensoes-no-php) 

     Aprenda o que são extensões no PHP, como instalar e ativar. Entenda também porque o PHP possui o conceito de extensões e quais são as mais usadas.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/10/18095832/capa-elton-symfony-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Symfony Componentes: o que são e qual sua importância para o ecossistema PHP ](https://www.treinaweb.com.br/blog/symfony-componentes-o-que-sao-e-qual-sua-importancia-para-o-ecossistema-php) 

     Entenda o que são os componentes do Symfony, o que eles fazem, quais as vantagens e desvantagens de utilizá-los. Além disso falaremos da importância deles para o ecossistema PHP.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/04/01155343/traits-php-400x280.jpg)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     8 anos atrás

    ##  [ O que são Traits no PHP e quando usar? ](https://www.treinaweb.com.br/blog/quando-usar-traits-no-php) 

     Uma reflexão sobre reuso de código, herança e a recomendação de utilização de Traits.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/a6GH8712a1-400x280.jpg)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     10 anos atrás

    ##  [ O PHP e o seu ecossistema nunca estiveram tão fortes ](https://www.treinaweb.com.br/blog/o-php-e-o-seu-ecossistema-nunca-estiveram-tao-fortes) 

     O PHP nunca esteve tão forte. Nesse artigo, algumas desconstruções de famosas falácias acerca do PHP e alguns pontos que o fazem ser uma completa plataforma para a Web.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/12/06151538/principais-projetos-doctrine-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Conheça os principais projetos do Doctrine ](https://www.treinaweb.com.br/blog/conheca-os-principais-projetos-do-doctrine) 

     O Doctrine é um conjunto de projetos PHP voltados principalmente para trabalhar com persistência de dados. Neste post vamos falar como esses projetos surgiram e qual a utilidade de cada um.

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **21h 07min 06s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
