diff options
author | minstel <minstel@yandex.ru> | 2016-10-17 23:18:54 +0300 |
---|---|---|
committer | minstel <minstel@yandex.ru> | 2016-10-17 23:18:54 +0300 |
commit | b51040901730a22c990c0f3a52baf8dcbefa0554 (patch) | |
tree | 4fe5c7a1687e3486a872e2a385b5d3581bfa9d42 /src/Controller.php | |
parent | 29d47e1885e4f51e8cdf6b1ce89ecbeb3301166a (diff) | |
download | controller-b51040901730a22c990c0f3a52baf8dcbefa0554.zip controller-b51040901730a22c990c0f3a52baf8dcbefa0554.tar.gz controller-b51040901730a22c990c0f3a52baf8dcbefa0554.tar.bz2 |
Controller class
Diffstat (limited to 'src/Controller.php')
-rw-r--r-- | src/Controller.php | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/Controller.php b/src/Controller.php new file mode 100644 index 0000000..8dfa176 --- /dev/null +++ b/src/Controller.php @@ -0,0 +1,67 @@ +<?php + +namespace Jasny; + +use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Controller + */ +abstract class Controller +{ + /** + * Server request + * @var ServerRequestInterface + **/ + protected $request = null; + + /** + * Response + * @var ResponseInterface + **/ + protected $response = null; + + /** + * Run the controller + * + * @return ResponseInterface + */ + abstract public function run(); + + /** + * Get request, set for controller + * + * @return ServerRequestInterface + */ + public function getRequest() + { + return $this->request; + } + + /** + * Get response. set for controller + * + * @return ResponseInterface + */ + public function getResponse() + { + return $this->response; + } + + /** + * Run the controller as function + * + * @param ServerRequestInterface $request + * @param ResponseInterface $response + * @return ResponseInterface + */ + public function __invoke(ServerRequestInterface $request, ResponseInterface $response) + { + $this->request = $request; + $this->response = $response; + + return $this->run(); + } +} + |