At Outsourcify we work on projects of varying sizes, from small sites with a few pages to complex business applications. Depending on the case, we recommend different technical solutions (we do a lot of Javascript SPA and WordPress also), but for the most complex cases, when we have to chose a technology to build large web applications that require several weeks or months of work with several of our web developers involved, Symfony is our framework of choice.

My story with Symfony

To be honest, there is first of all a personal reason why I chose Symfony as our PHP framework of choice in our company. I am French and I was in contact with the first version of Symfony early on as it was originally developed by a Frenchman, Fabien Potencier, then was supported by his web development agency, SensioLabs. I don’t even remember exactly how I got to know about it but for sure it was easier for me to learn about its existence on French language websites. The fact that a documentation and French tutorials were available also helped. It was more than 10 years ago and have been using it since, progressing with the evolution of the framework.

I worked at that time (2002/2003) as a IT consultant developer for large groups in Paris (EDF, GDF, Alstom) and the standard programming language for large business applications was Java in these companies, a language I started learning when I started working right after I obtained an IT engineer diploma. These first years as a developer, I was working on the maintenance and evolution of the code of existing apps created with Java frameworks/libraries : Spring, Struts, Hibernate mostly.

In my free time, I sometimes developed personal websites (for example the Eklektik Rock webzine, which I rebuilt several times) and I used PHP instead for those, this language already seemed to me at the time easier to use in a simple local environment on my personal computer, it was just easier to make things happen with PHP. I was trying out the different frameworks available, the first one I mastered was Mojavi, which I even adopted for a small project for a client back then.

When I decided to leave my job in Paris and move to Thailand, I had already discovered the first version of Symfony which was released in 2005. The transition from Java libraries that I used at work to an MVC framework like Symfony was quite simple, the modern PHP frameworks are very similar to Spring MVC. Propel (at the time the ORM proposed with Symfony, since replaced by Doctrine) had similarities with Hibernate.

By becoming a freelance, it seemed obvious to me that I was not going to continue to use the Java programming language, not that it would have been impossible for me but the ease of use and installation on inexpensive PHP servers, and the fact that Symfony was open source were obvious arguments in its favor. I was not working as a team anymore, I was working remotely for distant customers and I feel I made the right choice with Symfony, on the projects I worked on at the time (I started with a hotel booking app) but also in the long term because Symfony has evolved since then and is today in my eyes one of the best PHP frameworks. I guess it must also be used today by some of the teams of large French companies in which I worked 10 years ago.

Among so many popular PHP frameworks, why choose Symfony?

It would be presumptuous to say that I tried all the other PHP frameworks but I did try several at different times, for example Zend, CakePHP, CodeIgniter, and most recently Laravel, the main competitor of Symfony. It’s very personal but I have always returned to Symfony, even Laravel, which in fact takes over the majority of its concepts, and actually several components that are copied directly from Symfony, did not seem to me as clear and especially as robust as Symfony. Today as I lead teams of several PHP developers within my own web development agency, it makes even more sense.

Symfony has all the features that can be expected from a web framework, excellent documentation, an ecosystem of complete plugins (over 1000 bundles), anything that can speed up the creation of professional web applications that are easy to maintain. It is a series of open-source components, completely free to use and its libraries provide standardized tools that can be used in many different projects and avoid repeating repetitive tasks. It follows the Model View Controller (MVC) design pattern, which makes it possible to separate concerns and makes the work of everyone more clear when working in teams.
This open source framework was born in 2005 and was the first framework to support PHP version 5.3, it since evolved with PHP to the latest PHP 7.2, it has a huge community of users and contributors all over the world and is today the most used PHP framework in many countries in the world (including of course France but not Thailand where Laravel has the preference of PHP developers).

Main reasons for choosing Symfony

A Flexible Architecture: the Symfony Framework is a well-organized framework that is easy to use and learn. Its architecture allows developers to create sustainable web applications in the easiest way possible. Symfony has all that is expected from a modern framework, a clear structure that allows you to easily find your code as others’, thanks to reusable components and a series of good practices that the use of the framework implies. Its performances, while not always ideal, are excellent.

Innovation: The entire community has developed a sense of curiosity that goes well beyond PHP, and its creators have also worked to advance PHP as a whole, with some Symfony components now being used by other frameworks, CMS, or known libraries. Many of its concepts come from Java, like the dependency injection, but Symfony helped to adapt them to the PHP world. The Debug Toolbar and Profiler Toolbar is an example of a tool that helps programmers to develop in a productive way, it’s difficult to imagine coding PHP without it.

Interoperability: Symfony allows to build applications that meet the needs of any business, as long as it’s web based. It respects the existing PHP standards: PHPUnit, naming conventions for classes, and so on. It also allows you to use some of its components such as translation management, dependency injection, routing, form management, and more, without necessarily using the framework its entirety. It also makes good use of external libraries such as Doctrine or Swiftmailer rather than trying to reinvent what works well elsewhere.

Ecosystem: Written in PHP, a huge number of useful third-party plug-ins (called bundles). It’s practically difficult not to find a bundle that can help doing anything you would want. The framework is also gaining popularity and recognition for ease of installation on any server and stable performance on Linux (even on Windows). It supports any database such as MySQL, PostgreSQL, SQLite, MongoDB. It even supports automated form validation and user input validation to avoid SQL injections and XSS attacks.

Reputation: Rapidly adopted worldwide by PHP developers since its launch in 2005, Symfony today offers a stable environment that is both popular and internationally recognized. The number of its references has increased considerably since its launch, we can even say that it participated in the democratization of PHP and its use by major companies while the language had a picture of a lack of robustness in a professional environment still not so long ago (and still has, some might say but I don’t agree). Symfony is also an active community of developers and contributors who participate in the ongoing enhancement of the framework and associated tools.

Cost: Symfony automatically has low user fees being totally open source. It enables you to develop custom and robust applications for all kinds of businesses, and allows developers to fully control the configuration and customization of these applications. It has a collection of tools to help programmers test, debug, and document the development process to match enterprise specifications. The only cost implied are the work of the developers and hosting.

We provide symfony development services. If you would like to chat with a Symfony developer from our team, please contact us at Outsourcify.

We used Symfony to develop various applications for sectors such as social networks, content management, online billing, B2B marketplaces, inventory management, e-commerce, travel agency management,  insurance comparator, real estate listings and CRM and so on.