El código Symfony2 está formado por varias capas independientes, cada una de las cuales se basa en la anterior.
Truco La carga automática de clases no la gestiona el framework directamente, sino que se realiza mediante la clase UniversalClassLoader
y el archivo src/autoload.php
.
18.1.1. Componente HttpFoundation
En el nivel más profundo de Symfony2 se encuentra el componente HttpFoundation
, que proporciona los principales objetos necesarios para trabajar con el estándar HTTP. Se trata de una abstracción orientada a objetos de algunas funciones y variables nativas de PHP:
- La clase
Request
abstrae las principales variables globales de PHP, tales como$_GET
,$_POST
,$_COOKIE
,$_FILES
y$_SERVER
. - La clase
Response
abstrae algunas funciones de PHP comoheader()
,setcookie()
yecho
. - La clase
Session
y la interfazSessionStorageInterface
abstraen la gestión de sesiones y las funcionessession_*()
.
18.1.2. Componente HttpKernel
Por encima de HttpFoundation
está el componente HttpKernel
, que se encarga de gestionar la parte dinámica de HTTP. Se trata de una capa muy fina por encima de las clases Request
y Response
para estandarizar la forma en la que se procesan las peticiones. También proporciona herramientas y extensiones que lo convierten en el punto de partida ideal para crear un framework sin demasiado trabajo.
También añade opcionalmente configurabilidad y extensibilidad, gracias al componente de inyección de dependencias y a un potente sistema de bundles (un concepto similar a los plugins de otras aplicaciones).
18.1.3. Bundle FrameworkBundle
El bundle FrameworkBundle
une los principales componentes y librerías de Symfony2 para hacer un framework MVC ligero y rápido. Para reducir la curva de aprendizaje, el bundle sigue varias convenciones e incluye por defecto la configuración más común para las aplicaciones Symfony2.