18 private $components =
null;
24 $this->skinContext = $skinContext;
37 if ( $this->components === null ) {
38 $this->registerComponents();
40 $component = $this->components[$name] ??
null;
42 throw new RuntimeException(
'Unknown component: ' . $name );
54 if ( $this->components ===
null ) {
55 $this->registerComponents();
57 return $this->components;
68 private function registerComponent(
string $name ) {
69 $skin = $this->skinContext;
70 $this->components[$name] = match ( $name ) {
78 $skin->getMessageLocalizer(),
84 $skin->getOutput()->getRevisionTimestamp()
88 $skin->getOutput()->getOutputFlag( ParserOutputFlags::USE_PARSOID )
91 default =>
throw new RuntimeException(
"Unknown component: $name" )
98 private function registerComponents() {
99 $this->registerComponent(
'copyright' );
100 $this->registerComponent(
'last-modified' );
101 $this->registerComponent(
'logos' );
102 $this->registerComponent(
'toc' );
103 $this->registerComponent(
'search-box' );
104 $this->registerComponent(
'footer' );