getInstanceArguments example

/** * {@inheritdoc} */
  public function createInstance($plugin_id, array $configuration = []) {
    $plugin_definition = $this->discovery->getDefinition($plugin_id);
    $plugin_class = static::getPluginClass($plugin_id$plugin_definition$this->interface);

    // Lets figure out of there's a constructor for this class and pull     // arguments from the $options array if so to populate it.     $reflector = new \ReflectionClass($plugin_class);
    if ($reflector->hasMethod('__construct')) {
      $arguments = $this->getInstanceArguments($reflector$plugin_id$plugin_definition$configuration);
      $instance = $reflector->newInstanceArgs($arguments);
    }
    else {
      $instance = new $plugin_class();
    }

    return $instance;
  }

  /** * Inspects the plugin class and build a list of arguments for the constructor. * * This is provided as a helper method so factories extending this class can * replace this and insert their own reflection logic. * * @param \ReflectionClass $reflector * The reflector object being used to inspect the plugin class. * @param string $plugin_id * The identifier of the plugin implementation. * @param mixed $plugin_definition * The definition associated with the plugin_id. * @param array $configuration * An array of configuration that may be passed to the instance. * * @return array * An array of arguments to be passed to the constructor. */
Home | Imprint | This part of the site doesn't use cookies.