Symfony permite implementar el principio modelo-vista-controlador (MVC, Model-View-Controller). Este patrón de arquitectura clasifica a las aplicaciones en tres áreas:
- Funcionalidad de los datos y del núcleo (Model)
- Representación visual de los datos generados (View)
- Procesamiento de las entradas del usuario (Controller)
El enfoque MVC garantiza un código de programa claro y bien estructurado, así como una alta flexibilidad de los diversos componentes, que, gracias a este concepto, se pueden compartir y reutilizar, pues no están vinculados a datos de entrada específicos. Sin embargo, en este punto hay que señalar que Symfony no forma parte del MCV framework y no contiene ningún componente de modelo integrado. Como consecuencia, cuando creas un nuevo proyecto Symfony, este carecerá de la carpeta de modelos tradicional. Con la ayuda de bibliotecas ORM (Object Relational Mapper) adicionales como Doctrine, recomendada por SensioLabs, o Propel podrás almacenar objetos en sistemas de bases de datos por tus propios medios sin ningún problema.
Para crear la capa de presentación (View) de tu aplicación web, utiliza el módulo Templating y crea las respectivas plantillas que podrás extender con la ayuda de los llamados Helper (objetos PHP). El nivel Controller utiliza el nombre index.php por defecto (lo encontrarás en la carpeta “web”). Como en otros frameworks, en Symfony las entradas del usuario también se llaman “Actions”.