Symfony é um framework - conjunto de bibliotecas e ferramentas - em PHP para a criação de aplicações de alta performance e de fácil manutenção. É altamente inspirado pelo projeto Spring da comunidade Java e nasceu inicialmente direcionado à produzir sistemas de qualidade para o mundo enterprise em PHP oferecendo soluções modulares com o máximo de reaproveitamento de código.
O Symfony é um framework modular, voltado ao público enterprise e muito eficiente para a criação de microserviços. Todas essas partes de sua natureza combianda torna muito dificil estimar de forma quantitativa quantas empresas usam Symfony, uma vez em que muitos projetos utilizam apenas algumas partes ou serviços e as companhias do ramo de software enterprise não costumam divulgar o que usam para construir seus produtos.
Porém é facil de dizer que Symfony é um dos frameworks php mais populares devido ao fato da W3CTech medir o Symfony como o terceiro framework mais usado na internet, além disso foi o framework que mais recebeu contribuições em 2019.
Segundo o site EtonDigital o Spotify usa o Symfony para construir o backend do site e isso foi confirmado por o ex-engenheiro Mathias Petter Johansen (porém, ele deixa claro que o Symfony não é usado na aplicação principal/player que tem o backend escrito em Clojure e Java).
O Dailymotion é completamente construído usando Symfony. Isso inclusive faz parte dos estudos de caso disponíveis no site do framework. Segundo o Rank Global da Alexa o site é o #207 mais visitado no mundo e o quarto maior volume de mídias da internet.
Ainda segundo o site EtonDigital e confirmado no Quora e no Fórum Laracasts por funcionários da empresa o PornHub é construído com Symfony e o que levou a empresa a migrar o código PHP para Symfony foi justamente o grande número de requisições por dia que exigiram uma arquitetura de sistemas mais robusta para aguentar o tráfego na casa dos bilhões de requisições.
Para mostrar e exemplificar o funcionamento do framework foi elaborado um pequeno tutorial de uma toy application de um microblog de imagens.
- Requisitos Minimos/Instalação
- Iniciando um novo projeto em Symfony
- Ferramenta make e o primeiro Controller
- Rotas
- Views
- Template
- ORM
- Flash Messages
- Formulários
- Debug
- Segurança/Autenticação
- Relação entre tabelas, parte 1
- Upload de arquivos
- Relação entre tabelas, parte 2
- Services
- Toques Finais
Obs: Por motivos de diferença de leitura de fim de linha do editor de código para o de markdown alguns códigos ficarão mal identados, para resolver isso use a extensão beautify do VS Code ou CTRL+ALT+L no PHP Storm.