MediaWiki REL1_31
SkinFactory.php
Go to the documentation of this file.
1<?php
2
25
32
37 private $factoryFunctions = [];
44 private $displayNames = [];
45
50 public static function getDefaultInstance() {
51 return MediaWikiServices::getInstance()->getSkinFactory();
52 }
53
67 public function register( $name, $displayName, $callback ) {
68 if ( !is_callable( $callback ) ) {
69 throw new InvalidArgumentException( 'Invalid callback provided' );
70 }
71 $this->factoryFunctions[$name] = $callback;
72 $this->displayNames[$name] = $displayName;
73 }
74
81 public function getSkinNames() {
82 return $this->displayNames;
83 }
84
92 public function makeSkin( $name ) {
93 if ( !isset( $this->factoryFunctions[$name] ) ) {
94 throw new SkinException( "No registered builder available for $name." );
95 }
96 $skin = call_user_func( $this->factoryFunctions[$name], $name );
97 if ( $skin instanceof Skin ) {
98 return $skin;
99 } else {
100 throw new UnexpectedValueException( "The builder for $name returned a non-Skin object." );
101 }
102 }
103}
MediaWikiServices is the service locator for the application scope of MediaWiki.
Exceptions for skin-related failures.
Factory class to create Skin objects.
makeSkin( $name)
Create a given Skin using the registered callback for $name.
array $factoryFunctions
Map of name => callback.
array $displayNames
Map of name => fallback human-readable name, used when the 'skinname-<skin>' message is not available...
getSkinNames()
Returns an associative array of: skin name => human readable name.
static getDefaultInstance()
The main skin class which provides methods and properties for all other skins.
Definition Skin.php:36
Allows to change the fields on the form that will be generated $name
Definition hooks.txt:302
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped noclasses just before the function returns a value If you return an< a > element with HTML attributes $attribs and contents $html will be returned If you return $ret will be returned $skin
Definition hooks.txt:2011