Symfony volgt het Model-View-Controller (MVC)-patroon, dat de scheiding van logica en presentatie mogelijk maakt. Hierdoor kunnen ontwikkelaars code schrijven die gemakkelijk te onderhouden en uit te breiden is. Symfony biedt ook modulaire architectuur, wat betekent dat functionaliteit in Bundles wordt georganiseerd, waardoor projecten schaalbaar blijven.
- Model: dit vertegenwoordigt de gegevens en logica van de applicatie. Het omvat de interactie met de database en de verwerking van gegevens.
- View: de weergave is verantwoordelijk voor het presenteren van gegevens aan de gebruiker. Het omvat sjablonen en de presentatielogica.
- Controller: de controller fungeert als een tussenpersoon tussen het model en de view. Het verwerkt gebruikersinvoer, roept de juiste logica op en stuurt gegevens naar de juiste view.
Deze duidelijke scheiding van verantwoordelijkheden maakt de codebase van Symfony zeer onderhoudsvriendelijk. Het stelt ontwikkelaars in staat om efficiënt aan specifieke delen van de applicatie te werken zonder de rest van het systeem te verstoren.