Symfony

Languages and frameworks | adopt

Symfony is a popular open-source PHP framework that has been around since 2005. Symfony has shaped the current state of PHP, embracing strongly typed PHP, explicit ways of writing the code, usage of interfaces for testability and allowing developers to structure the code in any way they see fit. Symfony quickly picks up on new language features, usually adopting them pretty early, thanks to being an open-source project with a very big and active community. At the same time the community takes code quality and testing very seriously, so developers can be certain they are relying on the code of a high standard.

It is designed in a modular fashion, and many applications use Symfony components even if they do not use the framework itself, Shopware being a prime example. Throughout the development, more and more functionality was separated into stand-alone packages. Due to its modularity, it is hard to draw a line between Symfony components and Symfony framework, so widespread it is. Symfony is used by both small and big applications since it can be as small or as big as needed. It has pluggable support for most of the common tasks developers face, speeding up the development and increasing the code maintainability.

We believe that the high standard of Symfony code and its modularity give the necessary peace of mind when running critical business processes. Symfony code is highly testable, which leads to lower costs of automated testing. High verbosity means more code needs to be written at the beginning, and the learning curve is pretty steep, but it pays off very fast once the project is up and running.

Revisions:

adopt | July 2019

Symfony is an open source PHP web application framework, initially inspired by Spring. It helps with building either full stack web apps or tiers in a microservice architecture. It is used in a number of commercial and open source projects, even in other web frameworks, like Laravel. Symfony consists of reusable components. A developer can decide for themselves which of them to use. Thanks to this, the apps are more compact.

The basic features are:

  • Doctrine as ORM, thus the framework is data source independent;
  • Ability to use a number of templating engines or pure PHP, with Twig as the default one;
  • Routing management;
  • Dependency injection simplifies the code and increases testability;
  • Container-friendly: easily configurable to be deployed in a docker container
  • Enforces good practices on writing secure apps;

Symfony by default comes with PHPUnit as the default testing framework both for unit and functional testing. However, its architecture perfectly fits to BDD and we at Kiwee use phpspec for unit testing and Behat for functional testing instead.

Symfony is frequently updated and has a stable roadmap. Each minor version’s end-of-life date is announced upfront.

Here at Kiwee it’s our framework of choice for PHP projects.

Symfony's Github page.

adopt