From cb3dab1a64c8291724d5ec265f8546423c892303 Mon Sep 17 00:00:00 2001 From: Adrian Date: Tue, 25 Oct 2016 11:18:34 +0200 Subject: [PATCH 1/2] Add Whoops error handler --- composer.json | 1 + config/container.php | 5 +++++ src/App/HomeAction.php | 1 + 3 files changed, 7 insertions(+) diff --git a/composer.json b/composer.json index c2f3f31..8504069 100644 --- a/composer.json +++ b/composer.json @@ -5,6 +5,7 @@ } }, "require": { + "filp/whoops": "^2.1", "xtreamwayz/pimple-container-interop": "^1.0", "zendframework/zend-expressive": "^1.0", "zendframework/zend-expressive-fastroute": "^1.2", diff --git a/config/container.php b/config/container.php index c516330..1dce56c 100644 --- a/config/container.php +++ b/config/container.php @@ -20,6 +20,11 @@ $c[RouterInterface::class] = function () { return new FastRouteRouter; }; $c[UrlHelper::class] = new UrlHelperFactory; $c[UrlHelperMiddleware::class] = new UrlHelperMiddlewareFactory; $c[HomeAction::class] = new HomeFactory; + +$c['Zend\Expressive\Whoops'] = function () { return new Whoops\Run; }; +$c['Zend\Expressive\WhoopsPageHandler'] = function () { return new Whoops\Handler\PrettyPageHandler; }; +$c['Zend\Expressive\FinalHandler'] = new Zend\Expressive\Container\WhoopsErrorHandlerFactory; + $c[Application::class] = new ApplicationFactory; return $c; diff --git a/src/App/HomeAction.php b/src/App/HomeAction.php index 4e12097..c3ad196 100644 --- a/src/App/HomeAction.php +++ b/src/App/HomeAction.php @@ -19,5 +19,6 @@ class HomeAction { $result = sprintf("Hello World!
\n%s", var_export($this->urlhelper->generate('other'), true)); $res->getBody()->write($result); + throw new \RuntimeException; } } From 565c0315d3935018cb2de5fe6b2881d0c83ffe13 Mon Sep 17 00:00:00 2001 From: Adrian Date: Tue, 25 Oct 2016 11:32:51 +0200 Subject: [PATCH 2/2] TemplateRenderer which is used for 404 errors --- config/container.php | 3 +++ src/App/DummyRenderer.php | 35 +++++++++++++++++++++++++++++++++++ src/App/HomeAction.php | 1 - 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 src/App/DummyRenderer.php diff --git a/config/container.php b/config/container.php index 1dce56c..96fb9db 100644 --- a/config/container.php +++ b/config/container.php @@ -2,6 +2,7 @@ use Test\App\HomeAction; use Test\App\HomeFactory; +use Test\App\DummyRenderer; use Xtreamwayz\Pimple\Container; use Zend\Expressive\Application; use Zend\Expressive\Container\ApplicationFactory; @@ -11,6 +12,7 @@ use Zend\Expressive\Helper\UrlHelperMiddleware; use Zend\Expressive\Helper\UrlHelperMiddlewareFactory; use Zend\Expressive\Router\FastRouteRouter; use Zend\Expressive\Router\RouterInterface; +use Zend\Expressive\Template\TemplateRendererInterface; $c = new Container; @@ -21,6 +23,7 @@ $c[UrlHelper::class] = new UrlHelperFactory; $c[UrlHelperMiddleware::class] = new UrlHelperMiddlewareFactory; $c[HomeAction::class] = new HomeFactory; +$c[TemplateRendererInterface::class] = function () { return new DummyRenderer; }; $c['Zend\Expressive\Whoops'] = function () { return new Whoops\Run; }; $c['Zend\Expressive\WhoopsPageHandler'] = function () { return new Whoops\Handler\PrettyPageHandler; }; $c['Zend\Expressive\FinalHandler'] = new Zend\Expressive\Container\WhoopsErrorHandlerFactory; diff --git a/src/App/DummyRenderer.php b/src/App/DummyRenderer.php new file mode 100644 index 0000000..22a935f --- /dev/null +++ b/src/App/DummyRenderer.php @@ -0,0 +1,35 @@ + $params, 'paths' => $this->paths], true); + $params = str_replace("\n", "
\n", $params); + $params = str_replace(" ", " ", $params); + return "Render template '$name'
Params: $params"; + } + + public function addPath($path, $namespace = null) + { + if ($namespace !== null) $namespace .= '::'; + $this->paths[] = $namespace . $path; + } + + public function getPaths() + { + return $this->paths; + } + + public function addDefaultParam($templateName, $param, $value) + { + throw new \RuntimeException('Not implemented'); + } +} diff --git a/src/App/HomeAction.php b/src/App/HomeAction.php index c3ad196..4e12097 100644 --- a/src/App/HomeAction.php +++ b/src/App/HomeAction.php @@ -19,6 +19,5 @@ class HomeAction { $result = sprintf("Hello World!
\n%s", var_export($this->urlhelper->generate('other'), true)); $res->getBody()->write($result); - throw new \RuntimeException; } }