Symfony para PHP: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é Symfony e para que serve?

\n\n

Symfony é um poderoso, maduro e um dos mais populares frameworks componentizados para a linguagem PHP. Ele é projetado para criar aplicações web, desde pequenos sites até sistemas corporativos complexos. Ao contrário de frameworks monolíticos, o Symfony é construído com base no princípio da modularidade: ele consiste em um conjunto de componentes independentes, bem documentados e reutilizáveis (bibliotecas). Você pode usar todo o framework ou apenas componentes específicos (por exemplo, apenas o componente de requisição HTTP ou roteamento) em qualquer outro projeto PHP.

\n\n

Para que serve?

\n
    \n
  • Aceleração do desenvolvimento: Symfony fornece soluções prontas para tarefas típicas: roteamento, trabalho com bancos de dados (via Doctrine ORM), templates (Twig), autenticação, processamento de formulários, cache e muito mais. Você não precisa reinventar a roda.
  • \n
  • Estruturação e manutenibilidade: O framework impõe uma arquitetura clara (MVC — Model-View-Controller), o que torna o código organizado, previsível e fácil de manter por outros desenvolvedores.
  • \n
  • Confiabilidade e segurança: Symfony possui mecanismos integrados de proteção contra vulnerabilidades comuns (CSRF, XSS, injeção SQL). Ele é usado por gigantes como Drupal, phpBB e muitos projetos corporativos.
  • \n
  • Comunidade e ecossistema: Comunidade enorme, milhares de bundles prontos (extensões), documentação excelente e suporte de longo prazo (versões LTS).
  • \n
  • Flexibilidade: Você pode começar com um micro-framework (Symfony MicroKernel) para APIs e gradualmente adicionar os componentes necessários à medida que o projeto cresce.
  • \n
\n\n

Instalação do Symfony

\n\n

Ao contrário do Python (onde se usa pip), no PHP o gerenciamento de dependências é feito com o Composer. A instalação do Symfony consiste em duas etapas: instalar o instalador (Symfony CLI) e criar o projeto.

\n\n

1. Instalação do Composer

\n

Se você ainda não tem o Composer, baixe e instale-o do site oficial getcomposer.org. É uma ferramenta global para PHP.

\n
# Verificar instalação do Composer\ncomposer --version
\n\n

2. Instalação do Symfony CLI (recomendado)

\n

Symfony CLI é uma ferramenta conveniente para criar, gerenciar e executar projetos.

\n
# Instalação no macOS/Linux (via curl)\ncurl -sS https://get.symfony.com/cli | bash\n\n# Instalação no Windows (via Chocolatey)\nchoco install symfony-cli\n\n# Verificar\nsymfony --version
\n\n

3. Criando um novo projeto

\n

Use o comando symfony new para criar o esqueleto da aplicação.

\n
# Criar uma aplicação web completa (com Symfony Flex)\nsymfony new my_project --full\n\n# Criar uma micro-aplicação (para API)\nsymfony new my_api_project
\n

Se você não quiser instalar o CLI, pode usar o Composer diretamente:

\n
composer create-project symfony/skeleton:"7.0.*" my_project\n# Ou para aplicação completa:\ncomposer create-project symfony/website-skeleton:"7.0.*" my_project
\n\n

Início rápido com exemplo de código

\n\n

Vamos criar uma página simples "Olá, Mundo!" usando Symfony.

\n\n

1. Criando o controller

\n

O controller é uma classe PHP que processa a requisição e retorna uma resposta. Crie o arquivo src/Controller/HelloController.php:

\n
<?php\n// src/Controller/HelloController.php\n\nnamespace App\\Controller;\n\nuse Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController;\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Symfony\\Component\\Routing\\Annotation\\Route;\n\nclass HelloController extends AbstractController\n{\n    #[Route('/hello/{name}', name: 'hello_page')]\n                    

Recommendations