Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 5 |
ContainerFactory | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 5 |
createInstance | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 5 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Core\Plugin\Factory\ContainerFactory. | |
*/ | |
namespace Drupal\Core\Plugin\Factory; | |
use Drupal\Component\Plugin\Factory\DefaultFactory; | |
/** | |
* Plugin factory which passes a container to a create method. | |
*/ | |
class ContainerFactory extends DefaultFactory { | |
/** | |
* {@inheritdoc} | |
*/ | |
public function createInstance($plugin_id, array $configuration = array()) { | |
$plugin_definition = $this->discovery->getDefinition($plugin_id); | |
$plugin_class = static::getPluginClass($plugin_id, $plugin_definition, $this->interface); | |
// If the plugin provides a factory method, pass the container to it. | |
if (is_subclass_of($plugin_class, 'Drupal\Core\Plugin\ContainerFactoryPluginInterface')) { | |
return $plugin_class::create(\Drupal::getContainer(), $configuration, $plugin_id, $plugin_definition); | |
} | |
// Otherwise, create the plugin directly. | |
return new $plugin_class($configuration, $plugin_id, $plugin_definition); | |
} | |
} |