La aplicación es el elemento más importante de Silex. Se trata de una clase que implementa la interfaz HttpKernelInterface de Symfony, por lo que puedes pasarle un objeto de tipo Request al método handle()
y devolverá un objeto de tipo Response.
Esta clase también extiende el contenedor de servicios de Pimple
, lo que le otorga una gran flexibilidad no solo hacia el exterior sino también internamente. Además de poder reemplazar cualquier servicio con tu propio código, puedes acceder a cualquier servicio de la aplicación.
La aplicación también utiliza mucho el componente EventDispatcher para manejar los eventos del component HttpKernel de Symfony. Entre otras muchas cosas, gracias a estos eventos se obtiene el objeto Request
, se convierten las cadenas de texto en respuestas de tipo Response
y se manejan las excepciones. Los eventos también permiten la definición de los eventos responsables de los middlewares after
y before
.