You are here

class Content in JS Callback Handler 8.3

Plugin annotation


@JsCallback(
  id = "js.content",
  allowed_methods = { "GET" },
  csrf_token = FALSE,
)

Hierarchy

Expanded class hierarchy of Content

File

src/Plugin/Js/Content.php, line 16

Namespace

Drupal\js\Plugin\Js
View source
class Content extends JsCallbackBase {

  /**
   * @var \Symfony\Component\HttpKernel\Controller\ControllerResolverInterface
   */
  protected $controllerResolver;

  /**
   * @var \Drupal\Core\Routing\CurrentRouteMatch
   */
  protected $currentRouteMatch;

  /**
   * The access aware router.
   *
   * @var \Drupal\Core\Routing\AccessAwareRouterInterface
   */
  protected $router;

  /**
   * @var \Drupal\Core\Controller\TitleResolver
   */
  protected $titleResolver;

  /**
   * @var \Symfony\Cmf\Component\Routing\NestedMatcher\NestedMatcher
   */
  protected $routeMatcher;

  /**
   * {@inheritdoc}
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->controllerResolver = \Drupal::service('controller_resolver');
    $this->router = \Drupal::service('router');
    $this->titleResolver = \Drupal::service('title_resolver');
    $this->routeMatcher = \Drupal::service('router.matcher');
    $this->currentRouteMatch = \Drupal::service('current_route_match');
  }

  /**
   * {@inheritdoc}
   */
  public function access($path = '') {
    return \Drupal::accessManager()
      ->checkRequest($this
      ->getRequest($path));
  }

  /**
   * Creates a Request object for the given path.
   *
   * @param string $path
   *   The path to create request from. Must be internal.
   *
   * @return \Symfony\Component\HttpFoundation\Request
   *   A request object.
   */
  protected function getRequest($path = '') {
    $request = Request::create($path);
    $this->router
      ->matchRequest($request);
    return $request;
  }

  /**
   * Retrieves the route object from a path.
   *
   * @param \Symfony\Component\HttpFoundation\Request $request
   *   The Request object to create route from.
   *
   * @return \Symfony\Component\Routing\Route|null
   */
  protected function getRoute(Request $request) {
    return $this->currentRouteMatch
      ->getRouteMatchFromRequest($request)
      ->getRouteObject();
  }

  /**
   * {@inheritdoc}
   */
  public function execute($path = '') {

    // Normalize absolute URLs to an internal relative path.
    $base_url = \Drupal::service('router.request_context')
      ->getCompleteBaseUrl();
    if (!UrlHelper::isExternal($path) || UrlHelper::externalIsLocal($path, $base_url)) {
      $path = preg_replace('`^' . preg_quote($base_url) . '`', '', $path);
    }
    $request = $this
      ->getRequest($path);
    $controller = $this->controllerResolver
      ->getController($request);

    // Immediately return if there is no controller.
    if (!$controller) {
      throw new NotFoundHttpException();
    }

    // Set the title.
    if ($title = $this->titleResolver
      ->getTitle($request, $this
      ->getRoute($request))) {
      $this
        ->setTitle($title);
    }
    return call_user_func_array($controller, $this->controllerResolver
      ->getArguments($request, $controller));
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Content::$controllerResolver protected property
Content::$currentRouteMatch protected property
Content::$routeMatcher protected property
Content::$router protected property The access aware router.
Content::$titleResolver protected property
Content::access public function Access callback. Overrides JsCallbackBase::access
Content::execute public function Executes the callback. Overrides JsCallbackInterface::execute
Content::getRequest protected function Creates a Request object for the given path.
Content::getRoute protected function Retrieves the route object from a path.
Content::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides JsCallbackBase::__construct
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
JsCallbackBase::$classResolver protected property
JsCallbackBase::$js protected property
JsCallbackBase::$paramConversion protected property
JsCallbackBase::$parameters protected property
JsCallbackBase::$response protected property
JsCallbackBase::$title protected property
JsCallbackBase::accessDeniedMessage public function Message to show when access to the callback has been denied. Overrides JsCallbackInterface::accessDeniedMessage
JsCallbackBase::anonymousUserMessage public function Message to show when user is anonymous and callback requires CSRF token. Overrides JsCallbackInterface::anonymousUserMessage
JsCallbackBase::call public function Calls a method on the callback, providing necessary converted parameters. Overrides JsCallbackInterface::call
JsCallbackBase::captureOutput public function Flag indicating whether or not the callback should capture printed output. Overrides JsCallbackInterface::captureOutput
JsCallbackBase::convertParameters protected function Convert callback parameters into fully loaded objects.
JsCallbackBase::csrfToken public function Flag indicating whether callback should validate a CSRF token. Overrides JsCallbackInterface::csrfToken
JsCallbackBase::getAllowedMethods public function An indexed array of allowed HTTP methods. Overrides JsCallbackInterface::getAllowedMethods
JsCallbackBase::getParameters public function An associative array of parameters. Overrides JsCallbackInterface::getParameters
JsCallbackBase::getResponse public function Retrieves the callback's response handler. Overrides JsCallbackInterface::getResponse
JsCallbackBase::getTitle public function The human readable title of the callback, if set. Overrides JsCallbackInterface::getTitle
JsCallbackBase::invalidTokenMessage public function Message to show when an invalid CSRF token was provided. Overrides JsCallbackInterface::invalidTokenMessage
JsCallbackBase::mapMethodParameters public function
JsCallbackBase::methodNotAllowedMessage public function Message to show when a callback was requested with an invalid HTTP method. Overrides JsCallbackInterface::methodNotAllowedMessage
JsCallbackBase::setTitle public function Sets the title for the callback. Overrides JsCallbackInterface::setTitle
JsCallbackBase::validate public function Validates the callback. Overrides JsCallbackInterface::validate 1
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.