summaryrefslogtreecommitdiffstats
path: root/src/Controller.php
diff options
context:
space:
mode:
authorminstel <minstel@yandex.ru>2016-10-17 23:18:54 +0300
committerminstel <minstel@yandex.ru>2016-10-17 23:18:54 +0300
commitb51040901730a22c990c0f3a52baf8dcbefa0554 (patch)
tree4fe5c7a1687e3486a872e2a385b5d3581bfa9d42 /src/Controller.php
parent29d47e1885e4f51e8cdf6b1ce89ecbeb3301166a (diff)
downloadcontroller-b51040901730a22c990c0f3a52baf8dcbefa0554.zip
controller-b51040901730a22c990c0f3a52baf8dcbefa0554.tar.gz
controller-b51040901730a22c990c0f3a52baf8dcbefa0554.tar.bz2
Controller class
Diffstat (limited to 'src/Controller.php')
-rw-r--r--src/Controller.php67
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();
+ }
+}
+