From 6a97dab17a6ee9a5a87ebb396da78fe87847794d Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Wed, 20 Aug 2014 15:45:38 +0200 Subject: [PATCH] upgrade autocracy --- mdref/Action.php | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/mdref/Action.php b/mdref/Action.php index 46ab755..d85e300 100644 --- a/mdref/Action.php +++ b/mdref/Action.php @@ -9,11 +9,11 @@ use http\Controller\Observer; */ class Action extends Observer { - private function serveReference(\http\Url $url, \http\Controller\Payload $payload) { + private function serveReference(\http\Url $url, \stdClass $payload) { $finder = new Finder($this->baseUrl, REFS); $path = $finder->find($url); $payload->listing = new RefListing($path, - $finder->glob($path, "/[_a-zA-Z]*.md")); + $finder->glob($path, "/[:_a-zA-Z]*.md")); $payload->title = $payload->listing->getSelf()->formatLink(); $payload->refs = $finder; if ($path->isFile()) { @@ -24,7 +24,7 @@ class Action extends Observer } } - private function serveInternal(\http\Url $url, \http\Controller\Payload $payload) { + private function serveInternal(\http\Url $url, \stdClass $payload) { $finder = new Finder($this->baseUrl, ROOT); $path = $finder->find($url, ""); if ($path->isFile("")) { @@ -65,15 +65,18 @@ class Action extends Observer function update(\SplSubject $ctl) { /* @var \http\Controller $ctl */ try { - $pld = $ctl->getPayload(); + $pld = new \stdClass; + $ctl[Observer\View::class] = function() use($pld) { + return $pld; + }; + $pld->baseUrl = $this->baseUrl; $url = $this->baseUrl->mod($ctl->getRequest()->getRequestUrl()); $pld->permUrl = implode("/", $this->baseUrl->params($url)); - if ($this->serveReference($url, $pld) || $this->serveInternal($url, $pld)) { return; } elseif ($this->servePublic($url, $ctl->getResponse())) { - $ctl->detachAll("\\http\\Controller\\Observer\\View"); + $ctl->detachAll(Observer\View::class); return; } @@ -81,8 +84,10 @@ class Action extends Observer if (strcmp($url->path, $this->baseUrl->path)) { throw new \http\Controller\Exception(404, "Could not find '$url'"); } - } catch (\Exception $e) { - $ctl->getPayload()->exception = $e; + } catch (\Exception $exception) { + $ctl[Observer\View::class] = function() use($exception) { + return compact("exception"); + }; } } } -- 2.30.2