1414use Cspray \Labrador \CoreEngine ;
1515use Cspray \Labrador \Http \Event \AfterControllerEvent ;
1616use Cspray \Labrador \Http \Event \BeforeControllerEvent ;
17+ use Cspray \Labrador \Http \Event \ResponseSentEvent ;
1718use Cspray \Labrador \PluginManager ;
18- use Cspray \Labrador \Event \AppExecuteEvent ;
1919use Cspray \Labrador \Http \Router \Router ;
2020use Cspray \Labrador \Http \Exception \InvalidTypeException ;
2121use Symfony \Component \HttpFoundation \Request ;
@@ -26,10 +26,10 @@ class Engine extends CoreEngine {
2626
2727 const BEFORE_CONTROLLER_EVENT = 'labrador.http.before_controller ' ;
2828 const AFTER_CONTROLLER_EVENT = 'labrador.http.after_controller ' ;
29+ const RESPONSE_SENT_EVENT = 'labrador.http.response_sent ' ;
2930
3031 private $ emitter ;
3132 private $ router ;
32- private $ eventFactory ;
3333
3434 /**
3535 * @param Router $router
@@ -48,7 +48,12 @@ public function __construct(
4848
4949 public function run (Request $ req = null ) {
5050 $ cb = function () use ($ req ) {
51- $ this ->handleRequest ($ req ?? Request::createFromGlobals ())->send ();
51+ $ request = $ req ?? Request::createFromGlobals ();
52+ $ response = $ this ->handleRequest ($ request );
53+ $ response ->send ();
54+
55+ $ event = new ResponseSentEvent ($ request , $ response );
56+ $ this ->emitter ->emit ($ event );
5257 };
5358 $ cb = $ cb ->bindTo ($ this );
5459 $ this ->emitter ->addListener (self ::APP_EXECUTE_EVENT , $ cb );
0 commit comments