UriBuilder

An URI Builder

Table of Contents

Properties

$absoluteUriScheme  : string|null
$addQueryString  : bool|string|int
$argumentPrefix  : string|null
$arguments  : array<string|int, mixed>
$argumentsToBeExcludedFromQueryString  : array<string|int, mixed>
$configurationManager  : ConfigurationManagerInterface
$contentObject  : ContentObjectRenderer|null
$createAbsoluteUri  : bool
$extensionService  : ExtensionService
$format  : string
$language  : string|null
$lastArguments  : array<string|int, mixed>
Arguments which have been used for building the last URI
$linkAccessRestrictedPages  : bool
$noCache  : bool
$request  : RequestInterface|null
$section  : string
$targetPageType  : int
$targetPageUid  : int|null

Methods

build()  : string
Builds the URI Depending on the current context this calls buildBackendUri() or buildFrontendUri()
buildBackendUri()  : string
Builds the URI, backend flavour The settings pageUid, pageType, noCache & linkAccessRestrictedPages will be ignored in the backend.
buildFrontendUri()  : string
Builds the URI, frontend flavour
convertTransientObjectToArray()  : array<string|int, mixed>
Converts a given object recursively into an array.
getAbsoluteUriScheme()  : string|null
getAddQueryString()  : bool|string|int
getArgumentPrefix()  : string|null
getArguments()  : array<string|int, mixed>
getArgumentsToBeExcludedFromQueryString()  : array<string|int, mixed>
getCreateAbsoluteUri()  : bool
getFormat()  : string
getLanguage()  : string|null
getLastArguments()  : array<string|int, mixed>
Returns the arguments being used for the last URI being built.
getLinkAccessRestrictedPages()  : bool
getNoCache()  : bool
getRequest()  : RequestInterface|null
getSection()  : string
getTargetPageType()  : int
getTargetPageUid()  : int|null
returns $this->targetPageUid.
injectConfigurationManager()  : void
injectExtensionService()  : void
reset()  : static
Resets all UriBuilder options to their default value
setAbsoluteUriScheme()  : static
Sets the scheme that should be used for absolute URIs in FE mode
setAddQueryString()  : static
If set, the current query parameters will be merged with $this->arguments in backend context.
setArgumentPrefix()  : static
Specifies the prefix to be used for all arguments.
setArguments()  : static
Additional query parameters.
setArgumentsToBeExcludedFromQueryString()  : static
A list of arguments to be excluded from the query parameters Only active if addQueryString is set
setCreateAbsoluteUri()  : static
If set, the URI is prepended with the current base URI. Defaults to FALSE.
setFormat()  : static
Specifies the format of the target (e.g. "html" or "xml")
setLanguage()  : UriBuilder
Enforces a URI / link to a page to a specific language (or use "current")
setLinkAccessRestrictedPages()  : static
If set, URIs for pages without access permissions will be created
setNoCache()  : static
by default FALSE; if TRUE, &no_cache=1 will be appended to the URI
setRequest()  : static
Sets the current request
setSection()  : static
If specified, adds a given HTML anchor to the URI (#...)
setTargetPageType()  : static
Sets the page type of the target URI. Defaults to 0
setTargetPageUid()  : static
Uid of the target page
uriFor()  : string
Creates an URI used for linking to an Extbase action.
buildTypolinkConfiguration()  : array<string|int, mixed>
Builds a TypoLink configuration array from the current settings
convertDomainObjectsToIdentityArrays()  : array<string|int, mixed>
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.
convertIteratorToArray()  : array<string|int, mixed>
getContentObject()  : ContentObjectRenderer
removeDefaultControllerAndAction()  : array<string|int, mixed>
This removes controller and/or action arguments from given controllerArguments if they are equal to the default controller/action of the target plugin.

Properties

$absoluteUriScheme

protected string|null $absoluteUriScheme

$addQueryString

protected bool|string|int $addQueryString = false

$argumentPrefix

protected string|null $argumentPrefix

$arguments

protected array<string|int, mixed> $arguments = []

$argumentsToBeExcludedFromQueryString

protected array<string|int, mixed> $argumentsToBeExcludedFromQueryString = []

$createAbsoluteUri

protected bool $createAbsoluteUri = false

$lastArguments

Arguments which have been used for building the last URI

protected array<string|int, mixed> $lastArguments = []

$linkAccessRestrictedPages

protected bool $linkAccessRestrictedPages = false

$targetPageType

protected int $targetPageType = 0

$targetPageUid

protected int|null $targetPageUid

Methods

build()

Builds the URI Depending on the current context this calls buildBackendUri() or buildFrontendUri()

public build() : string
Tags
see
buildBackendUri()
see
buildFrontendUri()
Return values
string

The URI

buildBackendUri()

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

public buildBackendUri() : string
Internal

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

Return values
string

The URI

buildFrontendUri()

Builds the URI, frontend flavour

public buildFrontendUri() : string
Internal

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

Tags
see
buildTypolinkConfiguration()
Return values
string

The URI

convertTransientObjectToArray()

Converts a given object recursively into an array.

public convertTransientObjectToArray(DomainObjectInterface $object) : array<string|int, mixed>
Parameters
$object : DomainObjectInterface
Internal

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

Tags
todo

Refactor this into convertDomainObjectsToIdentityArrays()

Return values
array<string|int, mixed>

getAbsoluteUriScheme()

public getAbsoluteUriScheme() : string|null
Internal

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

Return values
string|null

getAddQueryString()

public getAddQueryString() : bool|string|int
Internal
Return values
bool|string|int

getArgumentPrefix()

public getArgumentPrefix() : string|null
Internal

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

Return values
string|null

getArguments()

public getArguments() : array<string|int, mixed>
Internal
Return values
array<string|int, mixed>

getArgumentsToBeExcludedFromQueryString()

public getArgumentsToBeExcludedFromQueryString() : array<string|int, mixed>
Internal
Return values
array<string|int, mixed>

getCreateAbsoluteUri()

public getCreateAbsoluteUri() : bool
Internal
Return values
bool

getFormat()

public getFormat() : string
Internal
Return values
string

getLanguage()

public getLanguage() : string|null
Return values
string|null

getLastArguments()

Returns the arguments being used for the last URI being built.

public getLastArguments() : array<string|int, mixed>

This is only set after build() / uriFor() has been called.

Internal

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

Return values
array<string|int, mixed>

The last arguments

getLinkAccessRestrictedPages()

public getLinkAccessRestrictedPages() : bool
Internal
Return values
bool

getNoCache()

public getNoCache() : bool
Internal
Return values
bool

getSection()

public getSection() : string
Internal
Return values
string

getTargetPageType()

public getTargetPageType() : int
Internal

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

Return values
int

getTargetPageUid()

returns $this->targetPageUid.

public getTargetPageUid() : int|null
Internal
Return values
int|null

injectExtensionService()

public injectExtensionService(ExtensionService $extensionService) : void
Parameters
$extensionService : ExtensionService
Internal

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

reset()

Resets all UriBuilder options to their default value

public reset() : static
Return values
static

the current UriBuilder to allow method chaining

setAbsoluteUriScheme()

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

public setAbsoluteUriScheme(string $absoluteUriScheme) : static
Parameters
$absoluteUriScheme : string

the scheme to be used for absolute URIs

Return values
static

the current UriBuilder to allow method chaining

setAddQueryString()

If set, the current query parameters will be merged with $this->arguments in backend context.

public setAddQueryString(bool|string|int $addQueryString) : static

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
$addQueryString : bool|string|int

is set to "1", "true", "0", "false" or "untrusted"

Tags
see
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Typolink.html#addquerystring
Return values
static

the current UriBuilder to allow method chaining

setArgumentPrefix()

Specifies the prefix to be used for all arguments.

public setArgumentPrefix(string $argumentPrefix) : static
Parameters
$argumentPrefix : string
Return values
static

the current UriBuilder to allow method chaining

setArguments()

Additional query parameters.

public setArguments(array<string|int, mixed> $arguments) : static

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

Parameters
$arguments : array<string|int, mixed>
Return values
static

the current UriBuilder to allow method chaining

setArgumentsToBeExcludedFromQueryString()

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

public setArgumentsToBeExcludedFromQueryString(array<string|int, mixed> $argumentsToBeExcludedFromQueryString) : static
Parameters
$argumentsToBeExcludedFromQueryString : array<string|int, mixed>
Tags
see
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Typolink.html#addquerystring
see
setAddQueryString()
Return values
static

the current UriBuilder to allow method chaining

setCreateAbsoluteUri()

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

public setCreateAbsoluteUri(bool $createAbsoluteUri) : static
Parameters
$createAbsoluteUri : bool
Return values
static

the current UriBuilder to allow method chaining

setFormat()

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

public setFormat(string $format) : static
Parameters
$format : string
Return values
static

the current UriBuilder to allow method chaining

setLanguage()

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

public setLanguage(string|null $language) : UriBuilder
Parameters
$language : string|null
Return values
UriBuilder

setLinkAccessRestrictedPages()

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

public setLinkAccessRestrictedPages(bool $linkAccessRestrictedPages) : static
Parameters
$linkAccessRestrictedPages : bool
Return values
static

the current UriBuilder to allow method chaining

setNoCache()

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

public setNoCache(bool $noCache) : static
Parameters
$noCache : bool
Return values
static

the current UriBuilder to allow method chaining

setRequest()

Sets the current request

public setRequest(RequestInterface $request) : static
Parameters
$request : RequestInterface
Return values
static

the current UriBuilder to allow method chaining

setSection()

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

public setSection(string $section) : static
Parameters
$section : string
Return values
static

the current UriBuilder to allow method chaining

setTargetPageType()

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

public setTargetPageType(int $targetPageType) : static
Parameters
$targetPageType : int
Return values
static

the current UriBuilder to allow method chaining

setTargetPageUid()

Uid of the target page

public setTargetPageUid(int $targetPageUid) : static
Parameters
$targetPageUid : int
Return values
static

the current UriBuilder to allow method chaining

uriFor()

Creates an URI used for linking to an Extbase action.

public uriFor([string|null $actionName = null ][, array<string|int, mixed>|null $controllerArguments = null ][, string|null $controllerName = null ][, string|null $extensionName = null ][, string|null $pluginName = null ]) : string

Works in Frontend and Backend mode of TYPO3.

Parameters
$actionName : string|null = null

Name of the action to be called

$controllerArguments : array<string|int, mixed>|null = null

Additional query parameters. Will be "namespaced" and merged with $this->arguments.

$controllerName : string|null = null

Name of the target controller. If not set, current ControllerName is used.

$extensionName : string|null = null

Name of the target extension, without underscores. If not set, current ExtensionName is used.

$pluginName : string|null = null

Name of the target plugin. If not set, current PluginName is used.

Tags
see
build()
Return values
string

the rendered URI

convertDomainObjectsToIdentityArrays()

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.

protected convertDomainObjectsToIdentityArrays(array<string|int, mixed> $arguments) : array<string|int, mixed>
Parameters
$arguments : array<string|int, mixed>

The arguments to be iterated

Tags
throws
InvalidArgumentValueException
Return values
array<string|int, mixed>

The modified arguments array

convertIteratorToArray()

protected convertIteratorToArray(Iterator $iterator) : array<string|int, mixed>
Parameters
$iterator : Iterator
Return values
array<string|int, mixed>

removeDefaultControllerAndAction()

This removes controller and/or action arguments from given controllerArguments if they are equal to the default controller/action of the target plugin.

protected removeDefaultControllerAndAction(array<string|int, mixed> $controllerArguments, string $extensionName, string $pluginName) : array<string|int, mixed>
Deprecated

since TYPO3 v12, will be removed in TYPO3 v13. Remove together with other extbase feature toggle related code.

Note: This is only active in FE mode and if feature "skipDefaultArguments" is enabled

Parameters
$controllerArguments : array<string|int, mixed>

the current controller arguments to be modified

$extensionName : string

target extension name

$pluginName : string

target plugin name

Tags
see
ConfigurationManagerInterface::isFeatureEnabled()
Return values
array<string|int, mixed>

        
On this page

Search results