From 4f2b5f88eacaee3be3978ef143e24b0b488efd29 Mon Sep 17 00:00:00 2001 From: Carsten Witt Date: Thu, 22 Dec 2016 10:50:06 +0100 Subject: [PATCH] Added JS and CSS capability --- src/WebsiteMiddleware.php | 22 +++++++++++++--------- tests/default/WebsiteMiddlewareTest.php | 4 ++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/WebsiteMiddleware.php b/src/WebsiteMiddleware.php index 4d5df1e..03f5db6 100644 --- a/src/WebsiteMiddleware.php +++ b/src/WebsiteMiddleware.php @@ -87,14 +87,9 @@ public function __invoke(Request $request, Response $response, $next) // --------------------------------------- - // 3. After that, render 'full page' template + // 3. Create template variables // --------------------------------------- - // Output global website template - $this->logger->debug("Render page template…"); - - $render = $this->render; - $vars = array_merge( $this->defaults, [ 'title' => $website->getTitle(), @@ -104,16 +99,25 @@ public function __invoke(Request $request, Response $response, $next) ] ); - $vars['javascripts'] = isset($vars['javascripts']) ? array_merge($vars['javascripts'], $website->getJavascripts()); - $vars['stylesheets'] = isset($vars['stylesheets']) ? array_merge($vars['stylesheets'], $website->getStylesheets()); + $vars['javascripts'] = isset($vars['javascripts']) ? array_merge($vars['javascripts'], $website->getJavascripts()) : $website->getJavascripts(); + $vars['stylesheets'] = isset($vars['stylesheets']) ? array_merge($vars['stylesheets'], $website->getStylesheets()) : $website->getStylesheets(); + + // --------------------------------------- + // 5. After that, render 'full page' template + // --------------------------------------- + + // Output global website template + $this->logger->debug("Render page template…"); + + $render = $this->render; $full_page_html = $render( $this->template, $vars); $this->logger->debug("Finish page template render; write response"); // --------------------------------------- - // 4. Write response + // 6. Write response // --------------------------------------- $full_html_response_body = new ResponseBody(fopen('php://temp', 'r+')); diff --git a/tests/default/WebsiteMiddlewareTest.php b/tests/default/WebsiteMiddlewareTest.php index b8ae1ef..2f2e73f 100644 --- a/tests/default/WebsiteMiddlewareTest.php +++ b/tests/default/WebsiteMiddlewareTest.php @@ -22,6 +22,8 @@ public function testInstantiation( $template, $defaults, $logger ) $website_mock = $this->prophesize( WebsiteInterface::class ); $website_mock->getTitle()->willReturn( "TheTitle" ); $website_mock->getDomId()->willReturn( "dom-id" ); + $website_mock->getJavascripts()->willReturn( array("javascript") ); + $website_mock->getStylesheets()->willReturn( array("stylesheet") ); $website = $website_mock->reveal(); @@ -50,6 +52,8 @@ public function testInvokation( $template, $defaults, $logger ) $website_mock = $this->prophesize( WebsiteInterface::class ); $website_mock->getTitle()->willReturn( "TheTitle" ); $website_mock->getDomId()->willReturn( "dom-id" ); + $website_mock->getJavascripts()->willReturn( array("javascript") ); + $website_mock->getStylesheets()->willReturn( array("stylesheet") ); $website = $website_mock->reveal(); $container_mock = $this->prophesize( ContainerInterface::class );