function ControllerResolver::getControllerFromDefinition

Same name in other branches
  1. 9 core/lib/Drupal/Core/Controller/ControllerResolver.php \Drupal\Core\Controller\ControllerResolver::getControllerFromDefinition()
  2. 10 core/lib/Drupal/Core/Controller/ControllerResolver.php \Drupal\Core\Controller\ControllerResolver::getControllerFromDefinition()
  3. 11.x core/lib/Drupal/Core/Controller/ControllerResolver.php \Drupal\Core\Controller\ControllerResolver::getControllerFromDefinition()

Overrides ControllerResolverInterface::getControllerFromDefinition

1 call to ControllerResolver::getControllerFromDefinition()
ControllerResolver::getController in core/lib/Drupal/Core/Controller/ControllerResolver.php

File

core/lib/Drupal/Core/Controller/ControllerResolver.php, line 60

Class

ControllerResolver
ControllerResolver to enhance controllers beyond Symfony's basic handling.

Namespace

Drupal\Core\Controller

Code

public function getControllerFromDefinition($controller, $path = '') {
    if (is_array($controller) || is_object($controller) && method_exists($controller, '__invoke')) {
        return $controller;
    }
    if (strpos($controller, ':') === FALSE) {
        if (function_exists($controller)) {
            return $controller;
        }
        return $this->classResolver
            ->getInstanceFromDefinition($controller);
    }
    $callable = $this->createController($controller);
    if (!is_callable($callable)) {
        throw new \InvalidArgumentException(sprintf('The controller for URI "%s" is not callable.', $path));
    }
    return $callable;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.