Total Complexity | 6 |
Total Lines | 45 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | <?php declare( strict_types = 1 ); |
||
11 | class MessageProvider { |
||
12 | /** @var string[]|null */ |
||
13 | private static $messages; |
||
14 | |||
15 | /** @var Wiki */ |
||
16 | private $wiki; |
||
17 | /** @var string */ |
||
18 | private $msgTitle; |
||
19 | |||
20 | /** |
||
21 | * @param Wiki $wiki |
||
22 | * @param string $msgTitle |
||
23 | */ |
||
24 | public function __construct( Wiki $wiki, string $msgTitle ) { |
||
25 | $this->wiki = $wiki; |
||
26 | $this->msgTitle = $msgTitle; |
||
27 | } |
||
28 | |||
29 | /** |
||
30 | * @throws MessagesPageDoesNotExistException |
||
31 | */ |
||
32 | private function grabWikiMessages(): void { |
||
33 | if ( self::$messages !== null ) { |
||
34 | return; |
||
35 | } |
||
36 | try { |
||
37 | $cont = $this->wiki->getPageContent( $this->msgTitle ); |
||
38 | self::$messages = json_decode( $cont, true ); |
||
39 | } catch ( MissingPageException $_ ) { |
||
40 | throw new MessagesPageDoesNotExistException( 'Please create a messages page.' ); |
||
41 | } |
||
42 | } |
||
43 | |||
44 | /** |
||
45 | * @param string $key |
||
46 | * @return Message |
||
47 | * @throws MessageNotFoundException |
||
48 | */ |
||
49 | public function getMessage( string $key ): Message { |
||
56 | } |
||
57 | } |
||
58 |