Symfony is a PHP framework for creating websites and web applications. Symfony provides you with a set of reusable components: Validators, HTTP Kernel, etc. Symfony Embraces best software development practices.
Symfony was first released in 2005. The framework releases have got LTS - Long Term Support and with the help of the huge community and documentaion you are not alone! What is noticably great is that symfony uses best practices for application development.
One of the prominent default symfony components: Twig templating engine, Doctrine 2 (database ORM). You can use any other bundles (libraries) in symfony.
Let’s get some terminology here:
The Symfony framework provides lots of commands through the bin/console script (e.g. the well-known bin/console cache:clear command). These commands are created with the Console component. You can also use it to create your own commands.
During the execution of a Symfony application, lots of event notifications are triggered. Your application can listen to these notifications and respond to them by executing any piece of code.
A bundle is similar to a plugin in other software, but even better. The core features of Symfony framework are implemented with bundles (FrameworkBundle, SecurityBundle, DebugBundle, etc.) They are also used to add new features in your application via third-party bundles.
Your application is full of useful objects: a “Mailer” object might help you send emails while another object might help you save things to the database. Almost everything that your app “does” is actually done by one of these objects. And each time you install a new bundle, you get access to even more!
This is where your services live. Service container will centralize the way services are constructed.