Symfony Componentes: o que são e qual sua importância para o ecossistema PHP \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 01 Horas 

 53 Min 

 54 Seg 

   Tempo restante da oferta: 01 53 54 

  [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) Symfony Componentes: o que são e qual sua importância para o ecossistema PHP  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

# Symfony Componentes: o que são e qual sua importância 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.

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

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/10/18095832/capa-elton-symfony.png)  

Recentemente apresentei uma palestra no PHP Community Summit falando sobre o Ecossistema [Symfony](https://www.treinaweb.com.br/blog/o-que-e-symfony/ "Symfony"), que você pode assistir no final deste artigo. A principal motivação para o conteúdo dessa palestra e também deste post é a importância que o Symfony possui para o ecossistema macro do [PHP](https://www.treinaweb.com.br/blog/o-que-e-php/ "PHP") como um todo. Muito desta relevância do Symfony vem dos seus componentes, então vamos falar um pouco sobre eles.

## O que são os componentes Symfony

A maioria das pessoas quando ouve falar a palavra Symfony logo pensa em um framework PHP. Na verdade, o Symfony é bem mais que isso, veja a definição oficial do site do Symfony:

> O Symfony é um conjunto de componentes, um framework, uma filosofia e uma comunidade.

Antes mesmo de falar que Symfony é um [framework](https://www.treinaweb.com.br/blog/para-que-serve-um-framework/ "framework") existe uma ênfase nos componentes, mas o que são esses componentes. Se formos olhar novamente na definição oficial, mas agora sobre os componentes, teremos:

> Componentes são pacotes reutilizáveis e desacoplados com objetivos específicos e que podem ser utilizados em qualquer aplicação PHP.

Exatamente nesse ponto entra a importância do Symfony para o PHP. Os componentes não estão acoplados e funcionam exclusivamente dentro do Symfony Framework, é possível usar os componentes em qualquer aplicação PHP.

[  ![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)

## Quem utiliza os componentes do Symfony?

A maioria dos grandes projetos escritos em PHP utilizam algum dos diversos componentes do Symfony. Veja uma lista abaixo dos principais:

- [Laravel](https://www.treinaweb.com.br/blog/o-que-e-laravel/ "Laravel") Framework
- Drupal
- Magento
- Joomla
- Yii Framework
- API Platform
- SDK PHP do facebook
- SDK PHP do Google
- PHPStan
- Behat
- Composer

A lista é muito grande! Na [página do Symfony](https://symfony.com/projects "página do Symfony") é possível verificar os projetos e quais componentes cada um utiliza. Uma coisa é certa, basicamente qualquer projeto PHP que vamos trabalhar utiliza algum tipo de componente do Symfony.

## Porque tanta gente utiliza os componentes do Symfony

Nesse ponto deve estar se perguntando o que esses componentes fazem de especial para serem utilizados em tantos projetos importantes na linguagem PHP e aqui entram dois pontos bem importantes.

O primeiro ponto que leva muitos projetos a utilizarem os componentes do Symfony é a confiabilidade. Os componentes são testados e utilizados em milhares de projetos, além de possuírem uma comunidade por trás que realiza manutenções de segurança e melhorias regularmente.

O segundo ponto é a produtividade, ao invés de reinventar a roda e correr o risco que ela não fique tão redonda quanto o necessário, o que acaba sendo menos produtivo e mais arriscado, porque não utilizar a roda que já está pronta e testada.

## O que esses componentes fazem

O Symfony possui componentes para diversos tipos de ações. Existem componentes que ajudam na estruturação de uma aplicação, por exemplo a estruturação de um framework. Existem componentes que ajudam em tarefas comuns a maioria das aplicações, por exemplo enviar email. E também existem componentes que são Polyfill para extensões e versões do PHP, por exemplo, vamos supor que sua aplicação necessite do PHP 7.3, porém não pode instalar essa versão em seu servidor, nesse caso pode instalar um componente que entregará as funções da versão sem realmente possuir.

Alguns exemplos de componentes para estruturação de uma aplicação:

- HTTP Kernel - Responsável por ajudar na estruturação desde o processo de request até o retorno da Response;
- HTTP Foundation - Permite acesso a uma implementação orientada a objetos do protocolo HTTP;
- Routing - Facilita o trabalho de roteamento da aplicação;
- DependencyInjection - Implementa o container e recursos de injeção de dependência
- Config - Facilita o acesso às configurações;
- Dotenv - Permite o acesso às variáveis de ambiente;

Alguns componentes que realizam tarefas comuns a maioria das aplicações:

- Mailer - Envio de email usando diversos serviços de forma extremamente simples;
- HTTP Client - Permite realizar requisições HTTP a outras aplicações;
- Form - Facilita a criação e a recuperação dos dados enviados via formulário;
- Validation - Permite a validação de dados usando regras predefinidas ou através da criação de novas regras;
- Security - Facilita o trabalho de autenticação e autorização na aplicação;
- Cache - Facilita a utilização de cache com diversos meios de armazenamento;
- DomCrawler - Possui mecanismos que permite navegar em documentos HTML e XML.

Temos também os componentes de polyfill:

- Polyfill PHP 5.4 até 7.3
- Polyfill XML
- Polyfill Intl
- Polyfill Mbstring
- Polyfill Ctype

Sempre que for usar componentes de polyfill é necessário consultar a documentação para verificar quais funções o componente realmente implementa, pois nem todas podem estar disponíveis.

## Porque não utilizar os componentes do Symfony

Nem tudo são rosas, como a maioria das coisas também existem pontos negativos ao usar componentes prontos.

Podemos citar primeiramente a falta de liberdade. Se sua aplicação necessita de uma nova função que não possui no componente. Caso queira implementar no componente oficial terá que convencer a equipe mantenedora que sua nova funcionalidade é importante para a maioria das pessoas que utilizam o componente, além de ter que seguir todas as regras para contribuir no projeto.

Outro ponto é a dependência do componente. A aplicação pode ficar dependente de um componente de tal forma que se ele for descontinuado ela esteja em risco. Por outro lado, isso pode ser contornado com a arquitetura correta da sua aplicação, se ao invés de depender diretamente do componente, depender de contratos, será possível trocar de componente com o mínimo de esforço.

## Conclusão

O Symfony possui mais de 50 componentes para os mais diversos propósitos. Aconselho acessar a [lista de componentes](https://symfony.com/components "lista de componentes") e ler o que cada um deles realiza. Desse modo sempre que tiver uma situação onde é necessário implementar uma nova funcionalidade na sua aplicação, poderá considerar um componente Symfony analisando as vantagens e desvantagens discutidas aqui.

[  ![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)

- [ #Laravel ](https://www.treinaweb.com.br/blog/tag/laravel)
- [ #Symfony ](https://www.treinaweb.com.br/blog/tag/symfony)

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/07/03163125/SYMFONY-FLEX-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ O que é o Symfony Flex e como ele funciona ](https://www.treinaweb.com.br/blog/o-que-e-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.

     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/2020/01/20161857/PHP-PSR1-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ PSR-1 Conheça os padrões básicos de codificação do PHP ](https://www.treinaweb.com.br/blog/psr-1-conheca-os-padroes-basicos-de-codificacao-do-php) 

     Conheça as recomendações da PSR-1 sobre os padrões básicos de codificação da linguagem PHP.

     Ler artigo
- ![](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/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
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/02/17151508/php-elefante-ponte-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Tipos no PHP ](https://www.treinaweb.com.br/blog/tipos-no-php) 

     Nesse post explicamos com exemplos tudo o que você precisa saber sobre definição de tipos em parâmetros e retornos de funções e métodos no PHP, além do novo recurso de propriedades de classes tipadas do PHP 7.4.

     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/2021/05/container-400x280.jpg)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     10 anos atrás

    ##  [ Container de injeção de dependência (DI Container) ](https://www.treinaweb.com.br/blog/container-de-injecao-de-dependencia-di-container) 

     Injetar dependências pode se tornar uma tarefa tediosa quando se têm muitas classes envolvidas. Um container de injeção de dependência resolve grande parte desse problema.

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

     8 anos atrás

    ##  [ Os principais Frameworks PHP ](https://www.treinaweb.com.br/blog/os-principais-frameworks-php) 

     Neste artigo falaremos brevemente sobre os principais Frameworks PHP do mercado.

     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/2019/10/04103322/ferramentas-php-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Ferramentas essenciais para um projeto PHP ](https://www.treinaweb.com.br/blog/ferramentas-essenciais-para-um-projeto-php) 

     Neste artigo cito as quatro principais ferramentas que considero essenciais para qualquer projeto PHP: PHPUnit, PHPStan, PHP-CS-Fixer e PHP Insights.

     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

## 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  **01h 53min 54s**

- 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
