1: <?php
2: namespace GLFramework\Middleware;
3: use GLFramework\Controller;
4: use GLFramework\Events;
5: use GLFramework\Middleware;
6: use GLFramework\Request;
7: use GLFramework\Response;
8:
9: 10: 11: 12: 13: 14:
15: class ControllerMiddleware implements Middleware
16: {
17:
18: 19: 20:
21: var $controller;
22:
23: 24: 25: 26:
27: public function __construct(Controller $controller)
28: {
29: $this->controller = $controller;
30: }
31:
32:
33: public function next(Request $request, Response $response, $next)
34: {
35:
36:
37: Events::fire('beforeControllerRun', array($this->controller));
38: $data = call_user_func_array(array($this->controller, "run"), $request->params);
39: $next($request, $response);
40: Events::fire('afterControllerRun', array($this->controller, $this->response));
41: $response->setContent($this->controller->display($data, $request->params));
42: }
43: }