‪TYPO3CMS  ‪main
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder Class Reference

Public Member Functions

 __construct (protected readonly ExtensionService $extensionService,)
 
 getArguments ()
 
 getSection ()
 
 getFormat ()
 
 getCreateAbsoluteUri ()
 
 getAbsoluteUriScheme ()
 
 setLanguage (?string $language)
 
 getLanguage ()
 
 getAddQueryString ()
 
 getArgumentsToBeExcludedFromQueryString ()
 
 getArgumentPrefix ()
 
 getLinkAccessRestrictedPages ()
 
 getTargetPageUid ()
 
 getTargetPageType ()
 
 getNoCache ()
 
array getLastArguments ()
 
string uriFor (?string $actionName=null, ?array $controllerArguments=null, ?string $controllerName=null, ?string $extensionName=null, ?string $pluginName=null)
 
string build ()
 
string buildBackendUri ()
 
string buildFrontendUri ()
 

Static Public Member Functions

static setRequest (RequestInterface $request)
 
static setArguments (array $arguments)
 
static setSection (string $section)
 
static setFormat (string $format)
 
static setCreateAbsoluteUri (bool $createAbsoluteUri)
 
static setAbsoluteUriScheme (string $absoluteUriScheme)
 
static setAddQueryString (bool|string|int $addQueryString)
 
static setArgumentsToBeExcludedFromQueryString (array $argumentsToBeExcludedFromQueryString)
 
static setArgumentPrefix (string $argumentPrefix)
 
static setLinkAccessRestrictedPages (bool $linkAccessRestrictedPages)
 
static setTargetPageUid (int $targetPageUid)
 
static setTargetPageType (int $targetPageType)
 
static setNoCache (bool $noCache)
 
static reset ()
 

Protected Member Functions

array buildTypolinkConfiguration ()
 
array convertDomainObjectsToIdentityArrays (array $arguments)
 
 convertIteratorToArray (\Iterator $iterator)
 
 convertTransientObjectToArray (DomainObjectInterface $object)
 

Protected Attributes

RequestInterface $request
 
array $arguments = []
 
array $lastArguments = []
 
string $section = ''
 
bool $createAbsoluteUri = false
 
string $absoluteUriScheme = null
 
bool string int $addQueryString = false
 
array $argumentsToBeExcludedFromQueryString = []
 
bool $linkAccessRestrictedPages = false
 
int $targetPageUid = null
 
int $targetPageType = 0
 
string $language = null
 
bool $noCache = false
 
string $format = ''
 
string $argumentPrefix = null
 

Detailed Description

URI Builder for extbase requests.

Definition at line 37 of file UriBuilder.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::__construct ( protected readonly ExtensionService  $extensionService)

Definition at line 56 of file UriBuilder.php.

Member Function Documentation

◆ build()

string TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::build ( )

◆ buildBackendUri()

string TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::buildBackendUri ( )

Builds the URI, backend flavour The settings pageUid, pageType, noCache & linkAccessRestrictedPages will be ignored in the backend.

Returns
‪string The URI

only to be used within Extbase, not part of TYPO3 Core API.

Definition at line 445 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$arguments, TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$section, and TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\convertDomainObjectsToIdentityArrays().

Referenced by TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\build().

◆ buildFrontendUri()

string TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::buildFrontendUri ( )

Builds the URI, frontend flavour

Returns
‪string The URI
See also
buildTypolinkConfiguration()

only to be used within Extbase, not part of TYPO3 Core API.

Definition at line 508 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$absoluteUriScheme, and TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\buildTypolinkConfiguration().

Referenced by TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\build().

◆ buildTypolinkConfiguration()

◆ convertDomainObjectsToIdentityArrays()

array TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::convertDomainObjectsToIdentityArrays ( array  $arguments)
protected

Recursively iterates through the specified arguments and turns instances of type \TYPO3\CMS\Extbase\DomainObject\AbstractEntity into an arrays containing the uid of the domain object.

Parameters
array$arguments‪The arguments to be iterated
Exceptions
InvalidArgumentValueException
Returns
‪array The modified arguments array

Definition at line 574 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$arguments, TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\convertIteratorToArray(), and TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\convertTransientObjectToArray().

Referenced by TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\buildBackendUri(), TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\buildTypolinkConfiguration(), and TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\convertTransientObjectToArray().

◆ convertIteratorToArray()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::convertIteratorToArray ( \Iterator  $iterator)
protected

◆ convertTransientObjectToArray()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::convertTransientObjectToArray ( DomainObjectInterface  $object)
protected

◆ getAbsoluteUriScheme()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getAbsoluteUriScheme ( )

only to be used within Extbase, not part of TYPO3 Core API.

Definition at line 152 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$absoluteUriScheme.

◆ getAddQueryString()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getAddQueryString ( )

◆ getArgumentPrefix()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getArgumentPrefix ( )

only to be used within Extbase, not part of TYPO3 Core API.

Definition at line 246 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$argumentPrefix.

◆ getArguments()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getArguments ( )

◆ getArgumentsToBeExcludedFromQueryString()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getArgumentsToBeExcludedFromQueryString ( )

◆ getCreateAbsoluteUri()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getCreateAbsoluteUri ( )

◆ getFormat()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getFormat ( )

◆ getLanguage()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getLanguage ( )

only to be used within Extbase, not part of TYPO3 Core API.

Definition at line 181 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$language.

◆ getLastArguments()

array TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getLastArguments ( )

Returns the arguments being used for the last URI being built. This is only set after build() / uriFor() has been called.

Returns
‪array The last arguments

only to be used within Extbase, not part of TYPO3 Core API.

Definition at line 334 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$lastArguments.

◆ getLinkAccessRestrictedPages()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getLinkAccessRestrictedPages ( )

◆ getNoCache()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getNoCache ( )

◆ getSection()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getSection ( )

◆ getTargetPageType()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getTargetPageType ( )

only to be used within Extbase, not part of TYPO3 Core API.

Definition at line 303 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$targetPageType.

◆ getTargetPageUid()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getTargetPageUid ( )

only to be used within Extbase, not part of TYPO3 Core API.

Definition at line 284 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$targetPageUid.

◆ reset()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::reset ( )
static

Resets all UriBuilder options to their default value

Returns
‪static the current UriBuilder to allow method chaining

Definition at line 344 of file UriBuilder.php.

◆ setAbsoluteUriScheme()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setAbsoluteUriScheme ( string  $absoluteUriScheme)
static

Sets the scheme that should be used for absolute URIs in FE mode

Parameters
string$absoluteUriScheme‪the scheme to be used for absolute URIs
Returns
‪static the current UriBuilder to allow method chaining

Definition at line 163 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$absoluteUriScheme.

◆ setAddQueryString()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setAddQueryString ( bool|string|int  $addQueryString)
static

If set, the current query parameters will be merged with $this->arguments in backend context. In frontend context, setting this property will only include mapped query arguments from the Page Routing. To include any - possible "unsafe" - GET parameters, the property has to be set to "untrusted". Defaults to FALSE.

Parameters
bool | string | int$addQueryString‪is set to "1", "true", "0", "false" or "untrusted"
Returns
‪static the current UriBuilder to allow method chaining
See also
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Typolink.html#addquerystring

Definition at line 196 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$addQueryString.

◆ setArgumentPrefix()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setArgumentPrefix ( string  $argumentPrefix)
static

Specifies the prefix to be used for all arguments.

Returns
‪static the current UriBuilder to allow method chaining

Definition at line 237 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$argumentPrefix.

◆ setArguments()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setArguments ( array  $arguments)
static

Additional query parameters. If you want to "prefix" arguments, you can pass in multidimensional arrays: array('prefix1' => array('foo' => 'bar')) gets "&prefix1[foo]=bar"

Returns
‪static the current UriBuilder to allow method chaining

Definition at line 78 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$arguments.

◆ setArgumentsToBeExcludedFromQueryString()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setArgumentsToBeExcludedFromQueryString ( array  $argumentsToBeExcludedFromQueryString)
static

A list of arguments to be excluded from the query parameters Only active if addQueryString is set

Returns
‪static the current UriBuilder to allow method chaining
See also
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Typolink.html#addquerystring
setAddQueryString()

Definition at line 218 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$argumentsToBeExcludedFromQueryString.

◆ setCreateAbsoluteUri()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setCreateAbsoluteUri ( bool  $createAbsoluteUri)
static

If set, the URI is prepended with the current base URI. Defaults to FALSE.

Returns
‪static the current UriBuilder to allow method chaining

Definition at line 135 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$createAbsoluteUri.

◆ setFormat()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setFormat ( string  $format)
static

Specifies the format of the target (e.g. "html" or "xml")

Returns
‪static the current UriBuilder to allow method chaining

Definition at line 116 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$format.

◆ setLanguage()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setLanguage ( ?string  $language)

Enforces a URI / link to a page to a specific language (or use "current")

Definition at line 172 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$language.

◆ setLinkAccessRestrictedPages()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setLinkAccessRestrictedPages ( bool  $linkAccessRestrictedPages)
static

If set, URIs for pages without access permissions will be created

Returns
‪static the current UriBuilder to allow method chaining

Definition at line 256 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$linkAccessRestrictedPages.

◆ setNoCache()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setNoCache ( bool  $noCache)
static

by default FALSE; if TRUE, &no_cache=1 will be appended to the URI

Returns
‪static the current UriBuilder to allow method chaining

Definition at line 313 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$noCache.

◆ setRequest()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setRequest ( RequestInterface  $request)
static

Sets the current request

Returns
‪static the current UriBuilder to allow method chaining

Definition at line 65 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$request.

◆ setSection()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setSection ( string  $section)
static

If specified, adds a given HTML anchor to the URI (#...)

Returns
‪static the current UriBuilder to allow method chaining

Definition at line 97 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$section.

◆ setTargetPageType()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setTargetPageType ( int  $targetPageType)
static

Sets the page type of the target URI. Defaults to 0

Returns
‪static the current UriBuilder to allow method chaining

Definition at line 294 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$targetPageType.

◆ setTargetPageUid()

static TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setTargetPageUid ( int  $targetPageUid)
static

Uid of the target page

Returns
‪static the current UriBuilder to allow method chaining

Definition at line 275 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$targetPageUid.

◆ uriFor()

string TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::uriFor ( ?string  $actionName = null,
?array  $controllerArguments = null,
?string  $controllerName = null,
?string  $extensionName = null,
?string  $pluginName = null 
)

Creates a URI used for linking to an Extbase action. Works in Frontend and Backend mode of TYPO3.

Parameters
string | null$actionName‪Name of the action to be called
array | null$controllerArguments‪Additional query parameters. Will be "namespaced" and merged with $this->arguments.
string | null$controllerName‪Name of the target controller. If not set, current ControllerName is used.
string | null$extensionName‪Name of the target extension, without underscores. If not set, current ExtensionName is used.
string | null$pluginName‪Name of the target plugin. If not set, current PluginName is used.
Returns
‪string the rendered URI
See also
build()

Definition at line 376 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$format, TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\build(), and TYPO3\CMS\Core\Http\fromRequest.

Member Data Documentation

◆ $absoluteUriScheme

string TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$absoluteUriScheme = null
protected

◆ $addQueryString

bool string int TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$addQueryString = false
protected

◆ $argumentPrefix

string TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$argumentPrefix = null
protected

◆ $arguments

◆ $argumentsToBeExcludedFromQueryString

array TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$argumentsToBeExcludedFromQueryString = []
protected

◆ $createAbsoluteUri

bool TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$createAbsoluteUri = false
protected

◆ $format

string TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$format = ''
protected

◆ $language

◆ $lastArguments

array TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$lastArguments = []
protected

◆ $linkAccessRestrictedPages

bool TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$linkAccessRestrictedPages = false
protected

◆ $noCache

bool TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$noCache = false
protected

◆ $request

RequestInterface TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$request
protected

◆ $section

◆ $targetPageType

◆ $targetPageUid

int TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$targetPageUid = null
protected