5 use http\Controller\Observer
;
7 class Action
extends Observer
9 function update(\SplSubject
$ctl) {
10 /* @var \http\Controller $ctl */
12 $payload = $ctl->getPayload();
13 $request = $ctl->getRequest();
15 $finder = new Finder($this->baseUrl
, REFS
);
16 $url = new \http\
Url($request->getRequestUrl());
17 if (!$path = $finder->find($url)) {
21 $payload->baseUrl
= $this->baseUrl
;
22 $payload->requestUrl
= $url;
24 $payload->listing
= new RefListing($path,
25 $finder->glob($path, "/[_a-zA-Z]*.md"));
27 if ($path->isFile()) {
28 $payload->markdown
= new Markdown($path);
29 $payload->sublisting
= new RefListing($path,
30 $finder->glob($path, "/[_a-z]*.md"));
31 } else if ($path($url)->isFile("")) {
32 $payload->markdown
= $path->toHtml();
33 } else if (strcmp($url, $this->baseUrl
)) {
34 throw new \http\Controller\
Exception(404, "Could not find '$url'");
36 } catch (\Exception
$e) {
37 $payload->baseUrl
= $this->baseUrl
;
38 $ctl->getPayload()->exception
= $e;