30 private $components =
null;
36 $this->skinContext = $skinContext;
49 if ( $this->components === null ) {
50 $this->registerComponents();
52 $component = $this->components[$name] ??
null;
54 throw new RuntimeException(
'Unknown component: ' . $name );
66 if ( $this->components ===
null ) {
67 $this->registerComponents();
69 return $this->components;
80 private function registerComponent(
string $name ) {
81 $skin = $this->skinContext;
97 $skin->getMessageLocalizer(),
104 case 'last-modified':
106 $skin, $skin->getOutput()->getRevisionTimestamp()
113 throw new RuntimeException(
'Unknown component: ' . $name );
115 $this->components[$name] = $component;
121 private function registerComponents() {
122 $this->registerComponent(
'copyright' );
123 $this->registerComponent(
'last-modified' );
124 $this->registerComponent(
'logos' );
125 $this->registerComponent(
'toc' );
126 $this->registerComponent(
'search-box' );
127 $this->registerComponent(
'footer' );