You are here

public static function UserAuthenticationController::create in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/user/src/Controller/UserAuthenticationController.php \Drupal\user\Controller\UserAuthenticationController::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 ControllerBase::create

File

core/modules/user/src/Controller/UserAuthenticationController.php, line 135

Class

UserAuthenticationController
Provides controllers for login, login status and logout via HTTP requests.

Namespace

Drupal\user\Controller

Code

public static function create(ContainerInterface $container) {
  if ($container
    ->hasParameter('serializer.formats') && $container
    ->has('serializer')) {
    $serializer = $container
      ->get('serializer');
    $formats = $container
      ->getParameter('serializer.formats');
  }
  else {
    $formats = [
      'json',
    ];
    $encoders = [
      new JsonEncoder(),
    ];
    $serializer = new Serializer([], $encoders);
  }
  return new static($container
    ->get('user.flood_control'), $container
    ->get('entity_type.manager')
    ->getStorage('user'), $container
    ->get('csrf_token'), $container
    ->get('user.auth'), $container
    ->get('router.route_provider'), $serializer, $formats, $container
    ->get('logger.factory')
    ->get('user'));
}