You are here

public static function SettingsForm::create in Lightning Layout 8

Same name and namespace in other branches
  1. 8.2 src/Form/SettingsForm.php \Drupal\lightning_layout\Form\SettingsForm::create()

Instantiates a new instance of this class.

This is a factory method that returns a new instance of this class. The factory should pass any needed dependencies into the constructor of this class, but not the container itself. Every call to this method must return a new instance of this class; that is, it may not implement a singleton.

Parameters

\Symfony\Component\DependencyInjection\ContainerInterface $container: The service container this instance should use.

Overrides ConfigFormBase::create

File

src/Form/SettingsForm.php, line 66

Class

SettingsForm
The settings form for controlling Lightning Layout's behavior.

Namespace

Drupal\lightning_layout\Form

Code

public static function create(ContainerInterface $container) {
  $arguments = [
    $container
      ->get('config.factory'),
    $container
      ->get('entity_type.manager'),
    $container
      ->get('plugin.manager.block'),
    $container
      ->get('string_translation'),
  ];

  // Entity Block is not a hard dependency of Lightning Layout, so we need
  // to be careful not to inject its deriver if it's not available.
  $deriver = 'Drupal\\entity_block\\Plugin\\Derivative\\EntityBlock';
  if (class_exists($deriver)) {
    $arguments[] = call_user_func([
      $deriver,
      'create',
    ], $container, 'entity_block');
  }
  $reflector = new \ReflectionClass(static::class);
  return $reflector
    ->newInstanceArgs($arguments);
}