diff --git a/core/lib/Drupal/Core/ControllerResolver.php b/core/lib/Drupal/Core/ControllerResolver.php index cf455cf..2175eb1 100644 --- a/core/lib/Drupal/Core/ControllerResolver.php +++ b/core/lib/Drupal/Core/ControllerResolver.php @@ -80,16 +80,11 @@ protected function createController($controller) { if (!class_exists($class)) { throw new \InvalidArgumentException(sprintf('Class "%s" does not exist.', $class)); } - $controller = new $class(); - } - // class:factory:method - elseif ($count == 2) { - list($class, $factory_method, $method) = explode(':', $controller, 3); - if (method_exists($class, $factory_method)) { - $controller = $class::$factory_method($this->container); + if (in_array('Drupal\Core\ControllerInterface', class_implements($class))) { + $controller = $class::create($this->container); } else { - throw new \InvalidArgumentException(sprintf('Factory method "%s::%s" does not exist.', $class, $factory_method)); + $controller = new $class(); } } else { diff --git a/core/modules/user/lib/Drupal/user/UserAutocompleteController.php b/core/modules/user/lib/Drupal/user/UserAutocompleteController.php index ae472e2..1081d65 100644 --- a/core/modules/user/lib/Drupal/user/UserAutocompleteController.php +++ b/core/modules/user/lib/Drupal/user/UserAutocompleteController.php @@ -8,12 +8,14 @@ use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\DependencyInjection\Container; +use Symfony\Component\DependencyInjection\ContainerInterface; + +use Drupal\Core\ControllerInterface; /** * Controller routines for taxonomy user routes. */ -class UserAutocompleteController { +class UserAutocompleteController implements ControllerInterface { /** * The user autocomplete helper class to find matching user names. @@ -33,9 +35,9 @@ public function __construct(UserAutocomplete $user_autocomplete) { } /** - * @todo. + * Implements \Drupal\ControllerInterface::create(). */ - public static function create(Container $container) { + public static function create(ContainerInterface $container) { return new static( $container->get('user.autocomplete') ); diff --git a/core/modules/user/user.routing.yml b/core/modules/user/user.routing.yml index ad70759..34b6059 100644 --- a/core/modules/user/user.routing.yml +++ b/core/modules/user/user.routing.yml @@ -8,13 +8,13 @@ user_register: user_autocomplete: pattern: '/user/autocomplete' defaults: - _controller: 'user.autocomplete_controller:autocompleteUser' + _controller: '\Drupal\user\UserAutocompleteController::autocompleteUser' requirements: _permission: 'access user profiles' user_autocomplete_anonymous: pattern: '/user/autocomplete/anonymous' defaults: - _controller: 'user.autocomplete_controller:autocompleteUserAnonymous' + _controller: '\Drupal\user\UserAutocompleteController::autocompleteUserAnonymous' requirements: _permission: 'access user profiles'