summaryrefslogtreecommitdiffstats
path: root/src/Controller/View.php
diff options
context:
space:
mode:
authorArnold Daniels <arnold@jasny.net>2017-02-09 12:54:46 +0100
committerArnold Daniels <arnold@jasny.net>2017-02-09 14:54:53 +0100
commit75ab132381ac2e9fc97daae680410e8cb3d292c3 (patch)
treebf38fd5b7b8781264df59ff79e71f740b5ca6a80 /src/Controller/View.php
parent9f2e0789a87685d6ba8f2cf10ee345d64771d95e (diff)
downloadcontroller-75ab132381ac2e9fc97daae680410e8cb3d292c3.zip
controller-75ab132381ac2e9fc97daae680410e8cb3d292c3.tar.gz
controller-75ab132381ac2e9fc97daae680410e8cb3d292c3.tar.bz2
Reworked views using Jasny View
Added View/PHP trait Ability to set a viewer
Diffstat (limited to 'src/Controller/View.php')
-rw-r--r--src/Controller/View.php38
1 files changed, 34 insertions, 4 deletions
diff --git a/src/Controller/View.php b/src/Controller/View.php
index f3e39de..b32c285 100644
--- a/src/Controller/View.php
+++ b/src/Controller/View.php
@@ -12,11 +12,23 @@ use Psr\Http\Message\ResponseInterface;
trait View
{
/**
+ * @var ViewInterface
+ */
+ protected $viewer;
+
+ /**
* Get server request
*
* @return ServerRequestInterface
*/
abstract public function getRequest();
+
+ /**
+ * Get server request
+ *
+ * @return ResponseInterface
+ */
+ abstract public function getResponse();
/**
* Get response. set for controller
@@ -25,12 +37,30 @@ trait View
*/
abstract public function setResponse(ResponseInterface $response);
+
/**
* Get the template engine abstraction
*
* @return ViewInterface
*/
- abstract public function getViewer();
+ public function getViewer()
+ {
+ if (!isset($this->viewer)) {
+ throw new \LogicException("Viewer has not been set");
+ }
+
+ return $this->viewer;
+ }
+
+ /**
+ * Get the template engine abstraction
+ *
+ * @param ViewInterface $viewer
+ */
+ public function setViewer(ViewInterface $viewer)
+ {
+ $this->viewer = $viewer;
+ }
/**
@@ -38,7 +68,7 @@ trait View
*
* @return string
*/
- protected function getViewPath()
+ public function getViewPath()
{
return getcwd();
}
@@ -51,13 +81,13 @@ trait View
*/
public function view($name, array $context = [])
{
- $context += ['current_url', $this->getRequest()->getUri()];
+ $context += ['current_url' => $this->getRequest()->getUri()];
if (method_exists($this, 'flash')) {
$context += ['flash' => $this->flash()];
}
- $response = $this->getViewer()->view($this->getResponse(), $name, $context);
+ $response = $this->getViewer()->render($this->getResponse(), $name, $context);
$this->setResponse($response);
}