1 | <?php |
||
12 | class Markdown |
||
13 | { |
||
14 | |||
15 | /** |
||
16 | * |
||
17 | * @var MarkdownAdapterInterface |
||
18 | */ |
||
19 | private $markdownAdapter; |
||
20 | |||
21 | /** |
||
22 | * |
||
23 | * @var EventManagerInterface |
||
24 | */ |
||
25 | private $eventManager; |
||
26 | |||
27 | /** |
||
28 | * Markdown constructor. |
||
29 | * |
||
30 | * @param MarkdownAdapterInterface $markdownAdapter |
||
31 | * @param EventManagerInterface|null $eventManager |
||
32 | */ |
||
33 | 3 | public function __construct(MarkdownAdapterInterface $markdownAdapter, EventManagerInterface $eventManager = null) |
|
38 | |||
39 | 3 | public function render($markdown) |
|
40 | { |
||
41 | // first check if there's something within the cache |
||
42 | 3 | $cachedMarkdown = $this->triggerEvent('markdown.render.pre', array('markdown' => $markdown)); |
|
43 | 3 | if (false !== $cachedMarkdown) { |
|
44 | 1 | return $cachedMarkdown; |
|
45 | } |
||
46 | |||
47 | // now render, it seems cache is not active |
||
48 | // or nothing was found within the cache |
||
49 | 2 | $renderedMarkdown = $this->markdownAdapter->transformText($markdown); |
|
50 | |||
51 | // save the rendered markdown to the cache |
||
52 | 2 | $this->triggerEvent('markdown.render.post', array( |
|
53 | 2 | 'markdown' => $markdown, |
|
54 | 2 | 'renderedMarkdown' => $renderedMarkdown, |
|
55 | )); |
||
56 | |||
57 | 2 | return $renderedMarkdown; |
|
58 | } |
||
59 | |||
60 | 3 | private function triggerEvent($event, $args) |
|
75 | } |
||
76 |