Software livre sobre a licença MIT, o Symfony é um Framework web escrito em PHP, lançado em 2005.
Sua comunidade conta com mais de 600.000 desenvolvedores de mais de 120 países, tornando a implementação de novas funcionalidades ao Framework um processo rápido.
É um Framework amplamente conhecido por ter sido um dos primeiros a trabalhar com componentes, possibilitando o reuso do seu código em diversos projetos open sources. Os principais pontos em sua filosofia são:
- A utilização de melhores práticas de desenvolvimento;
- A criação de aplicações profissionais, e;
- A interoperabilidade de aplicações.
Curso Symfony - Fundamentos
Conhecer o cursoPadrão MVC
Utiliza o padrão de projeto MVC, que é basicamente:
-
Model: Parte lógica da aplicação que gerencia o comportamento dos dados. A camada de model apenas tem o necessário para que tudo aconteça, mas não sabe quando irá executar.
-
View: Gerencia a saída gráfica e textual da aplicação ao usuário final, não possuindo a responsabilidade de saber quando vai exibir os dados, apenas como irá exibi-los.
-
Controller: Essa é a camada que sabe quem chamar e quando chamar para executar determinada ação, comandando a visão e o modelo para se alterarem de forma apropriada.
Basicamente, o MVC funciona da seguinte forma:
Ao receber uma requisição, o Controller solicita ao Model as informações necessárias (que provavelmente virão do banco de dados), que as obtém e retorna ao Controller. De posse dessas informações, o Controller as envia para a View que irá renderizá-las.
Vantagens do Symfony
- Orientado a objetos;
- Possui ferramentas de depuração;
- Suporte para ambientes de implantação;
- Recursos avançados de segurança;
- Documentação completa e bem explicada;
- ORM: Fácil integração com Doctrine;
- Integração com PHPUnit;
- Versões mantidas por um longo período.
Componentes
Os componentes são um conjunto de bibliotecas PHP desacopladas e reutilizáveis, permitindo que sejam utilizadas em qualquer projeto PHP independentemente do Symfony Framework.
Dentre os vários componentes do Symfony, podemos citar:
- DependencyInjection - Permite padronizar e centralizar a maneira como os objetos são construídos em sua aplicação;
- Debug - Fornece ferramentas para facilitar a depuração de código PHP;
- Form - Fornece ferramentas para facilitar a criação, processamento e reutilização de formulários HTML;
- Mailer - Ajuda a implementar o envio de e-mails e fornece integração com os principais serviços.
Muitos outros componentes podem ser utilizados para te auxiliar na realização de suas aplicações. A lista de todos os componentes você pode conferir na página de componentes do Symfony.
Os componentes do Symfony são usados nos principais projetos PHP. Alguns projetos importantes que fazem o uso são:
- Laravel Framework
- Yii Framework
- Drupal
- Joomla
- Magento
É possível ver a lista completa de projetos que usam componentes do Symfony aqui.
Framework ou Micro-Framework?
A partir da versão 4 o Symfony possui uma ferramenta chamada Flex. Ela realiza a instalação e configuração de pacotes de uma maneira extremamente simples e automática. Isso permite ao desenvolvedor iniciar um projeto com o mínimo de dependências e “plugar” novas funcionalidades quando necessário. Baseado nesse recurso quando vamos instalar o Symfony podemos escolher entre uma aplicação mínima com características de micro-framework ou uma aplicação completa, com características de framework.
Quando usamos a estrutura completa do Symfony temos as principais características de um framework:
- Completo;
- Integrado;
- Padronizado;
- Fácil de deployar.
Quando usamos a estrutura mínima, podemos citar as seguintes características:
- Leve;
- Altamente customizável;
- “Rápido”;
- Ideal para cenários com micro-serviços.
Ou seja, desta forma, o Symfony traz o melhor dos dois mundos onde atenderá desde aplicações menores a aplicações mais robustas.
Caso ainda não tenha ficado claro a diferença entre Framework e Micro-Framework, temos aqui no blog dois artigos bem legais sobre o assunto. Basta clicar sobre os links. :)
Atualizações e Suporte
O Symfony possui cronogramas muito bem definido de manutenção de correções e suporte para cada uma das versões lançadas. Isso garante uma segurança maior, principalmente para projetos corporativos.
As versões comuns contam com 6 meses de suporte a correções e 1 ano de suporte de segurança, enquanto as versões LTS (long term support) 3 anos de suporte para correção e 4 anos de suporte para segurança, sendo a segunda a versão mais indicada para uso em produção.
A cada 6 meses uma nova versão minor é lançada, conforme o cronograma acima. Atualmente estamos na versão 4.3, a versão LTS atual é a 3.4 e a próxima versão LTS é a 4.4 que será lançada em novembro.
Concluindo
O Symfony é um ótimo framework para a criação de aplicações, independente do seu tamanho. Neste artigo vimos algumas de suas principais características.