public function HttpKernel::generateInternalUri

Generates an internal URI for a given controller.

This method uses the "_internal" route, which should be available.

Parameters

string $controller A controller name to execute (a string like BlogBundle:Post:index), or a relative URI:

array $attributes An array of request attributes:

array $query An array of request query parameters:

boolean $secure:

Return value

string An internal URI

1 call to HttpKernel::generateInternalUri()
HttpKernel::render in drupal/core/lib/Drupal/Core/HttpKernel.php
Renders a Controller and returns the Response content.

File

drupal/core/lib/Drupal/Core/HttpKernel.php, line 211
Definition of Drupal\Core\HttpKernel.

Class

HttpKernel
This HttpKernel is used to manage scope changes of the DI container.

Namespace

Drupal\Core

Code

public function generateInternalUri($controller, array $attributes = array(), array $query = array(), $secure = true) {
  if (0 === strpos($controller, '/')) {
    return $controller;
  }
  $path = http_build_query($attributes, '', '&');
  $uri = $this->container
    ->get('router')
    ->generate($secure ? '_internal' : '_internal_public', array(
    'controller' => $controller,
    'path' => $path ?: 'none',
    '_format' => $this->container
      ->get('request')
      ->getRequestFormat(),
  ));
  if ($queryString = http_build_query($query, '', '&')) {
    $uri .= '?' . $queryString;
  }
  return $uri;
}