Using Symfony for a wide variety of projects
Use Cases and Deployment Scope
I have used Symfony a couple of times in the past both working on personal projects, as a freelance developer and at least a couple of times with different employers. Symfony is one of those PHP frameworks that at first had way too many things but with time, it started to become a simpler and more efficient framework to build simple to robust applications. In my personal experience, I used Symfony for projects which varied from small API's, console applications to robust web scalable systems. I had the chance to participate in projects where Symfony was used for lead generation projects, custom API's for mobile applications and small personal projects. The main reason why Symfony was used most of the times was the available documentation and the large community of developers supporting it.
Pros
- Your coding speed will be increased thanks for Symfony Flex, a feature based on Symfony Recipes, a set of automated instructions to integrate third-party packages into your application.
- The learning curve is just great for any kind of developer, from a junior to a senior, thanks to all the great documentation you will be able to get up to speed in a could of hours with any kind of application.
- The code quality of Symfony makes it, as of today, one of the best architected and cleanest PHP frameworks available.
Cons
- Performance can be an issue sometimes, especially with older versions of Symfony.
- For some developers it might be challenging to start working with Symfony. While the learning curve isn't necessarily too bad, any developer willing to work with this framework, junior or senior, must have some strong architectural knowledge. If your software architecture knowledge is weak you might find yourself struggling trying to understand some of the design patterns used when working with Symfony.
- Symfony comes with a significant number of external dependencies. Your custom modules will rely on a strict architecture and you will be forced at some point to spend a significant amount of time doing a lot of testing. This can slow down the development process.
Likelihood to Recommend
Any small project which you want to have ready in a couple of hours would be probably a bad candidate for using Symfony. Even the most seasoned senior developer can easily spend hours or days creating a small MVP with Symfony. While Symfony's learning curve isn't necessarily bad and will depend a lot on the architectural knowledge of the developer itself, because of the modularity required by Symfony you will need to spend a significant amount of time coding. If you are looking for a quick project, perhaps this framework isn't the best solution.
Robust applications can benefit from Symfony's architecture. I have participated in projects on different industries including lead generation, marketing and even some micro-services for other industries which use Symfony. Because of how thorough the framework has been architected, you will have a reliable solution.
