Symfony has a strong codebase with multiple components, with Symfony you will feel like you have a great power and with great power comes great responsibility.
Walking through Symfony components will prove to you the fact of a powerful framework that first released on late 2005. The HttpFoundation Component that's used to build frameworks like Laravel, The Messenger Component that's used to build a robust messages (sender, receiver) service with brokers like RabbitMQ, The Form Component that's used for form building and form validations, The Template Component which provides the PHP itself as a Template Language or Twig, The DotEnv Component that's used for parsing environments variables from .env file, The EventDispatcher Component that's used for events listeners and dispatchers giving you a way to pass data across your application components embracing the Mediator design pattern and Observe design pattern allowing a behavior pattern to set the global state of your applications or observe actions through your application life cycle, and other components.
Symfony is used to build:
- CMSs like Drupal...
- Frameworks like Laravel..
- E-Commerce solution like Magneto and Sylius..
- Forums bulletin like phpBB...
and many many more..
From my personal experience with Symofny, I will say it will allow you to scale between different patterns, I had been working with Symofny following the ADR Action Domain Response pattern to build API using API PLATFORM and because design patterns can vary in one project, I used the MVC Model View Controller with ADR and by embracing the Messenger Component you can build an EDA Event Driven Architecture using your API actions or regular MVC forms to send and receive messages that can do magic stuff. From the difference between Architecture and Design Patterns Symfony gives you the sandbox tools to architecture and design your solution.