Global navigation

   Documentation Center
   eZ Studio & eZ Platform
     User Manual
     Technical Manual
     Glossary
   Exponential 4.x / legacy

 
Exponential (5.x)

Exponential 5.x | For eZ Platform & eZ Studio topics see Technical manual and User manual, for Exponential 4.x and Legacy topics see Exponential legacy

Skip to end of metadata
Go to start of metadata

Version compatibility

This page is compatible with Exponential 5.3 / 2014.03

 

When using the multisite feature, it is sometimes useful to be able to generate cross-links between the different sites.
This allows to link different resources referenced in a same content repository, but configured independently with different tree roots.

Twig example
See ez_urlalias documentation page
PHP example
 
Important: As SiteAccess matchers can involve hosts and ports, it is highly recommended to generate cross-siteaccess
links in the absolute form (e.g. using url() Twig helper).
  • The first matcher succeeding always wins, so be careful when using catch-all matchers like URIElement.
  • If passed SiteAccess name is not a valid one, an InvalidArgumentException will be thrown.
  • If matcher used to match provided SiteAccess doesn't implement VersatileMatcher, the link will be generated for the current SiteAccess.
  • When using Compound\LogicalAnd, all inner matchers must match. If at least one matcher doesn't implement VersatileMatcher, it will fail.
  • When using Compound\LogicalOr, the first inner matcher succeeding will win.

To implement this feature, a new VersatileMatcher was added to allow SiteAccess matchers to be able to reverse-match.
All existing matchers implement this new interface, except the Regexp based matchers which have been deprecated.

The SiteAccess router has been added a matchByName() method to reflect this addition. Abstract URLGenerator and DefaultRouter have been updated as well.

Note: SiteAccess router public methods have also been extracted to a new interface, SiteAccessRouterInterface.

1 Comment

  1. Hi, in the PHP code example, since you meant to generate absolute URL's, you need to pass the constant UrlGeneratorInterface::ABSOLUTE_URL to $this->generateUrl instead of UrlGeneratorInterface::ABSOLUTE_PATH.