本文整理汇总了PHP中Drupal\Core\Routing\UrlGeneratorInterface类的典型用法代码示例。如果您正苦于以下问题:PHP UrlGeneratorInterface类的具体用法?PHP UrlGeneratorInterface怎么用?PHP UrlGeneratorInterface使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了UrlGeneratorInterface类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: setUp
/**
* {@inheritdoc}
*/
protected function setUp()
{
$this->eventDispatcher = $this->getMock(EventDispatcherInterface::class);
$this->entityManager = $this->getMock(EntityManagerInterface::class);
$this->urlGenerator = $this->getMock(UrlGeneratorInterface::class);
$this->urlGenerator->expects($this->any())->method('generateFromRoute')->willReturn('http://example.com');
$this->stringTranslation = $this->getStringTranslationStub();
$this->payment = $this->getMock(PaymentInterface::class);
$this->sut = new PaymentReference([], 'payment_reference', [], $this->eventDispatcher, $this->urlGenerator, $this->entityManager, $this->stringTranslation);
$this->sut->setPayment($this->payment);
}
示例2: setUp
/**
* {@inheritdoc}
*/
protected function setUp()
{
parent::setUp();
$this->urlGenerator = $this->getMock('Drupal\\Core\\Routing\\UrlGeneratorInterface');
$this->urlGenerator->expects($this->any())->method('generateFromPath')->will($this->returnArgument(0));
$this->router = $this->getMock('Drupal\\Tests\\Core\\Routing\\TestRouterInterface');
$container = new ContainerBuilder();
$container->set('router', $this->router);
$container->set('url_generator', $this->urlGenerator);
\Drupal::setContainer($container);
}
示例3: createHtmlFragment
/**
* Converts a render array into an HtmlFragment object.
*
* @param array|string $page_content
* The page content area to display.
* @param \Symfony\Component\HttpFoundation\Request $request
* The request object.
*
* @return \Drupal\Core\Page\HtmlPage
* A page object.
*/
protected function createHtmlFragment($page_content, Request $request)
{
// Allow controllers to return a HtmlFragment or a Response object directly.
if ($page_content instanceof HtmlFragment || $page_content instanceof Response) {
return $page_content;
}
if (!is_array($page_content)) {
$page_content = array('main' => array('#markup' => $page_content));
}
$content = $this->drupalRender($page_content);
$cache = !empty($page_content['#cache']['tags']) ? array('tags' => $page_content['#cache']['tags']) : array();
$fragment = new HtmlFragment($content, $cache);
// A title defined in the return always wins.
if (isset($page_content['#title'])) {
$fragment->setTitle($page_content['#title'], Title::FILTER_XSS_ADMIN);
} else {
if ($route = $request->attributes->get(RouteObjectInterface::ROUTE_OBJECT)) {
$fragment->setTitle($this->titleResolver->getTitle($request, $route), Title::PASS_THROUGH);
}
}
// Add feed links from the page content.
$attached = drupal_render_collect_attached($page_content, TRUE);
if (!empty($attached['drupal_add_feed'])) {
foreach ($attached['drupal_add_feed'] as $feed) {
$feed_link = new FeedLinkElement($feed[1], $this->urlGenerator->generateFromPath($feed[0]));
$fragment->addLinkElement($feed_link);
}
}
return $fragment;
}
示例4: render
/**
* {@inheritdoc}
*/
public function render(array $render_array)
{
$content = $this->drupalRenderRoot($render_array);
if (!empty($render_array)) {
drupal_process_attached($render_array);
}
$cache = !empty($render_array['#cache']['tags']) ? ['tags' => $render_array['#cache']['tags']] : [];
$fragment = new HtmlFragment($content, $cache);
if (isset($render_array['#title'])) {
$fragment->setTitle($render_array['#title'], Title::FILTER_XSS_ADMIN);
}
$attached = isset($render_array['#attached']) ? $render_array['#attached'] : [];
$attached += ['feed' => [], 'html_head' => [], 'html_head_link' => []];
// Add feed links from the page content.
foreach ($attached['feed'] as $feed) {
$fragment->addLinkElement(new FeedLinkElement($feed[1], $this->urlGenerator->generateFromPath($feed[0])));
}
// Add generic links from the page content.
foreach ($attached['html_head_link'] as $link) {
$fragment->addLinkElement(new LinkElement($this->urlGenerator->generateFromPath($link[0]['href']), $link[0]['rel']));
}
// @todo Also transfer the contents of "_drupal_add_html_head" once
// https://www.drupal.org/node/2296951 lands.
// @todo Transfer CSS and JS over to the fragment once those are supported
// on the fragment object.
return $fragment;
}
示例5: collect
/**
* {@inheritdoc}
*/
public function collect(Request $request, Response $response, \Exception $exception = NULL)
{
if ($this->translation instanceof TranslationManagerWrapper) {
/** \Drupal\webprofiler\StringTranslation\TranslationManagerWrapper $this->translation */
$this->data['translations']['translated'] = $this->translation->getTranslated();
$this->data['translations']['untranslated'] = $this->translation->getUntranslated();
}
$data['user_interface_translations_path'] = $this->urlGenerator->generateFromRoute('locale.translate_page');
}
示例6: execute
/**
* {@inheritdoc}
*/
public function execute($object = NULL)
{
$url = $this->urlGenerator->generateFromPath($this->configuration['url'], array('absolute' => TRUE));
$response = new RedirectResponse($url);
$listener = function ($event) use($response) {
$event->setResponse($response);
};
// Add the listener to the event dispatcher.
$this->dispatcher->addListener(KernelEvents::RESPONSE, $listener);
}
示例7: setupUrlGenerator
protected function setupUrlGenerator()
{
$this->urlGenerator->expects($this->any())->method('generateFromRoute')->willReturnCallback(function ($route, $parameters, $options) {
$query_string = '';
if (!empty($options['query'])) {
$query_string = '?' . $options['query'];
}
return '/current-path' . $query_string;
});
}
示例8: testProcessOutbound
/**
* Tests the output process.
*/
public function testProcessOutbound()
{
$expected_cacheability = (new BubbleableMetadata())->addCacheContexts(['route'])->setCacheMaxAge(Cache::PERMANENT);
$request_stack = \Drupal::requestStack();
/** @var \Symfony\Component\Routing\RequestContext $request_context */
$request_context = \Drupal::service('router.request_context');
// Test request with subdir on homepage.
$server = ['SCRIPT_NAME' => '/subdir/index.php', 'SCRIPT_FILENAME' => \Drupal::root() . '/index.php', 'SERVER_NAME' => 'http://www.example.com'];
$request = Request::create('/subdir/', 'GET', [], [], [], $server);
$request->attributes->set(RouteObjectInterface::ROUTE_NAME, '<front>');
$request->attributes->set(RouteObjectInterface::ROUTE_OBJECT, new Route('/'));
$request_stack->push($request);
$request_context->fromRequest($request);
$url = GeneratedUrl::createFromObject($expected_cacheability)->setGeneratedUrl('/subdir/');
$this->assertEqual($url, $this->urlGenerator->generateFromRoute('<current>', [], [], TRUE));
// Test request with subdir on other page.
$server = ['SCRIPT_NAME' => '/subdir/index.php', 'SCRIPT_FILENAME' => \Drupal::root() . '/index.php', 'SERVER_NAME' => 'http://www.example.com'];
$request = Request::create('/subdir/node/add', 'GET', [], [], [], $server);
$request->attributes->set(RouteObjectInterface::ROUTE_NAME, 'node.add');
$request->attributes->set(RouteObjectInterface::ROUTE_OBJECT, new Route('/node/add'));
$request_stack->push($request);
$request_context->fromRequest($request);
$url = GeneratedUrl::createFromObject($expected_cacheability)->setGeneratedUrl('/subdir/node/add');
$this->assertEqual($url, $this->urlGenerator->generateFromRoute('<current>', [], [], TRUE));
// Test request without subdir on the homepage.
$server = ['SCRIPT_NAME' => '/index.php', 'SCRIPT_FILENAME' => \Drupal::root() . '/index.php', 'SERVER_NAME' => 'http://www.example.com'];
$request = Request::create('/', 'GET', [], [], [], $server);
$request->attributes->set(RouteObjectInterface::ROUTE_NAME, '<front>');
$request->attributes->set(RouteObjectInterface::ROUTE_OBJECT, new Route('/'));
$request_stack->push($request);
$request_context->fromRequest($request);
$url = GeneratedUrl::createFromObject($expected_cacheability)->setGeneratedUrl('/');
$this->assertEqual($url, $this->urlGenerator->generateFromRoute('<current>', [], [], TRUE));
// Test request without subdir on other page.
$server = ['SCRIPT_NAME' => '/index.php', 'SCRIPT_FILENAME' => \Drupal::root() . '/index.php', 'SERVER_NAME' => 'http://www.example.com'];
$request = Request::create('/node/add', 'GET', [], [], [], $server);
$request->attributes->set(RouteObjectInterface::ROUTE_NAME, 'node.add');
$request->attributes->set(RouteObjectInterface::ROUTE_OBJECT, new Route('/node/add'));
$request_stack->push($request);
$request_context->fromRequest($request);
$url = GeneratedUrl::createFromObject($expected_cacheability)->setGeneratedUrl('/node/add');
$this->assertEqual($url, $this->urlGenerator->generateFromRoute('<current>', [], [], TRUE));
// Test request without a found route. This happens for example on an
// not found exception page.
$server = ['SCRIPT_NAME' => '/index.php', 'SCRIPT_FILENAME' => \Drupal::root() . '/index.php', 'SERVER_NAME' => 'http://www.example.com'];
$request = Request::create('/invalid-path', 'GET', [], [], [], $server);
$request_stack->push($request);
$request_context->fromRequest($request);
// In case we have no routing, the current route should point to the front,
// and the cacheability does not depend on the 'route' cache context, since
// no route was involved at all: this is fallback behavior.
$url = GeneratedUrl::createFromObject((new BubbleableMetadata())->setCacheMaxAge(Cache::PERMANENT))->setGeneratedUrl('/');
$this->assertEqual($url, $this->urlGenerator->generateFromRoute('<current>', [], [], TRUE));
}
示例9: testExecute
/**
* @covers ::execute
*/
public function testExecute()
{
$url = $this->randomMachineName();
$currency = $this->getMock(CurrencyInterface::class);
$currency->expects($this->once())->method('enable');
$currency->expects($this->once())->method('save');
$this->urlGenerator->expects($this->once())->method('generateFromRoute')->with('entity.currency.collection')->willReturn($url);
$response = $this->sut->execute($currency);
$this->assertInstanceOf(RedirectResponse::class, $response);
$this->assertSame($url, $response->getTargetUrl());
}
示例10: injectToolbar
/**
* @param \Symfony\Component\HttpFoundation\Response $response
*/
protected function injectToolbar(Response $response)
{
$content = $response->getContent();
$pos = mb_strripos($content, '</body>');
if (FALSE !== $pos) {
if ($token = $response->headers->get('X-Debug-Token')) {
$loader = ['#theme' => 'webprofiler_loader', '#token' => $token, '#profiler_url' => $this->urlGenerator->generate('webprofiler.toolbar', ['profile' => $token])];
$content = mb_substr($content, 0, $pos) . $this->renderer->renderRoot($loader) . mb_substr($content, $pos);
$response->setContent($content);
}
}
}
示例11: listAttribute
/**
* {@inheritdoc}
*/
public function listAttribute($content)
{
$this->crawler->addContent($content);
$this->links = array();
$this->crawler->filter('a')->each(function (HtmlPageCrawler $anchor, $uri) {
$href = $anchor->attr('href');
// @todo deprecated method.
$this->links[] = $this->urlGenerator->generateFromPath($href, array('absolute' => TRUE));
});
$this->crawler->remove();
return implode(',', $this->links);
}
示例12: buildForm
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state)
{
$config = $this->config('ckeditor_media_embed.settings');
$form['embed_provider'] = array('#type' => 'textfield', '#title' => $this->t('Provider URL'), '#default_value' => $config->get('embed_provider'), '#description' => $this->t('A template for the URL of the provider endpoint.
This URL will be queried for each resource to be embedded. By default CKEditor uses the Iframely service.<br />
<strong>Example</strong> <code>//example.com/api/oembed-proxy?resource-url={url}&callback={callback}</code><br />
<strong>Default</strong> <code>//ckeditor.iframe.ly/api/oembed?url={url}&callback={callback}</code><br />
'));
if ($this->moduleHandler->moduleExists('help')) {
$form['embed_provider']['#description'] .= $this->t('Check out the <a href=":help">help</a> page for more information.<br />', array(':help' => $this->urlGenerator->generateFromRoute('help.page', array('name' => 'ckeditor_media_embed'))));
}
return parent::buildForm($form, $form_state);
}
示例13: get
/**
* {@inheritdoc}
*/
public function get()
{
if (!isset($this->destination)) {
$query = $this->requestStack->getCurrentRequest()->query;
if (UrlHelper::isExternal($query->get('destination'))) {
$this->destination = '/';
} elseif ($query->has('destination')) {
$this->destination = $query->get('destination');
} else {
$this->destination = $this->urlGenerator->generateFromRoute('<current>', [], ['query' => UrlHelper::buildQuery(UrlHelper::filterQueryParameters($query->all()))]);
}
}
return $this->destination;
}
示例14: render
/**
* {@inheritdoc}
*/
public function render() {
$build = parent::render();
$build['#empty'] = t('No eform types available. <a href="@link">Add EForm type</a>.', array(
'@link' => $this->urlGenerator->generateFromRoute('eform.type_add'),
));
return $build;
}
示例15: render
/**
* {@inheritdoc}
*/
public function render() {
$build = parent::render();
$build['#empty'] = $this->t('There are currently no blocktabs. <a href=":url">Add a new one</a>.', array(
':url' => $this->urlGenerator->generateFromRoute('blocktabs.add'),
));
return $build;
}