diff options
author | Arnold Daniels <arnold@jasny.net> | 2017-02-09 12:54:46 +0100 |
---|---|---|
committer | Arnold Daniels <arnold@jasny.net> | 2017-02-09 14:54:53 +0100 |
commit | 75ab132381ac2e9fc97daae680410e8cb3d292c3 (patch) | |
tree | bf38fd5b7b8781264df59ff79e71f740b5ca6a80 /src/Controller/View.php | |
parent | 9f2e0789a87685d6ba8f2cf10ee345d64771d95e (diff) | |
download | controller-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.php | 38 |
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); } |