public static function SingletonPluginBase::create in ThemeKey 8
Creates an instance of the plugin.
Parameters
\Symfony\Component\DependencyInjection\ContainerInterface $container: The container to pull out services used in the plugin.
array $configuration: A configuration array containing information about the plugin instance.
string $plugin_id: The plugin ID for the plugin instance.
mixed $plugin_definition: The plugin implementation definition.
Return value
static Returns an instance of this plugin.
Overrides ContainerFactoryPluginInterface::create
File
- src/
Plugin/ SingletonPluginBase.php, line 23 - Provides Drupal\themekey\PropertyBase.
Class
Namespace
Drupal\themekey\PluginCode
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
if (!isset(static::$instances[$plugin_id])) {
$interfaces = class_implements($plugin_definition['class']);
foreach ($interfaces as $interface) {
if (is_subclass_of($interface, '\\Drupal\\themekey\\Plugin\\SingletonPluginInspectionInterface')) {
$plugin_class = DefaultFactory::getPluginClass($plugin_id, $plugin_definition, $interface);
static::$instances[$plugin_id] = new $plugin_class($configuration, $plugin_id, $plugin_definition);
break;
}
}
}
if (!isset(static::$instances[$plugin_id])) {
// TODO
throw new Exception();
}
return static::$instances[$plugin_id];
}