TYPO3 CMS  TYPO3_7-6
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder Class Reference

Public Member Functions

 injectConfigurationManager (\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface $configurationManager)
 
 injectExtensionService (\TYPO3\CMS\Extbase\Service\ExtensionService $extensionService)
 
 injectEnvironmentService (\TYPO3\CMS\Extbase\Service\EnvironmentService $environmentService)
 
 initializeObject ()
 
 setRequest (Request $request)
 
 getRequest ()
 
 setArguments (array $arguments)
 
 getArguments ()
 
 setSection ($section)
 
 getSection ()
 
 setFormat ($format)
 
 getFormat ()
 
 setCreateAbsoluteUri ($createAbsoluteUri)
 
 getCreateAbsoluteUri ()
 
 getAbsoluteUriScheme ()
 
 setAbsoluteUriScheme ($absoluteUriScheme)
 
 setAddQueryString ($addQueryString)
 
 getAddQueryString ()
 
 setAddQueryStringMethod ($addQueryStringMethod)
 
 getAddQueryStringMethod ()
 
 setArgumentsToBeExcludedFromQueryString (array $argumentsToBeExcludedFromQueryString)
 
 getArgumentsToBeExcludedFromQueryString ()
 
 setArgumentPrefix ($argumentPrefix)
 
 getArgumentPrefix ()
 
 setLinkAccessRestrictedPages ($linkAccessRestrictedPages)
 
 getLinkAccessRestrictedPages ()
 
 setTargetPageUid ($targetPageUid)
 
 getTargetPageUid ()
 
 setTargetPageType ($targetPageType)
 
 getTargetPageType ()
 
 setNoCache ($noCache)
 
 getNoCache ()
 
 setUseCacheHash ($useCacheHash)
 
 getUseCacheHash ()
 
 getLastArguments ()
 
 reset ()
 
 uriFor ($actionName=null, $controllerArguments=[], $controllerName=null, $extensionName=null, $pluginName=null)
 
 build ()
 
 buildBackendUri ()
 
 buildFrontendUri ()
 
 convertTransientObjectToArray (\TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject $object)
 

Protected Member Functions

 removeDefaultControllerAndAction (array $controllerArguments, $extensionName, $pluginName)
 
 buildTypolinkConfiguration ()
 
 convertDomainObjectsToIdentityArrays (array $arguments)
 
 convertIteratorToArray (\Iterator $iterator)
 

Protected Attributes

 $configurationManager
 
 $extensionService
 
 $contentObject
 
 $request
 
 $arguments = []
 
 $lastArguments = []
 
 $section = ''
 
 $createAbsoluteUri = false
 
 $absoluteUriScheme = null
 
 $addQueryString = false
 
 $addQueryStringMethod = null
 
 $argumentsToBeExcludedFromQueryString = []
 
 $linkAccessRestrictedPages = false
 
 $targetPageUid = null
 
 $targetPageType = 0
 
 $noCache = false
 
 $useCacheHash = true
 
 $format = ''
 
 $argumentPrefix = null
 
 $environmentService
 

Detailed Description

An URI Builder

Definition at line 27 of file UriBuilder.php.

Member Function Documentation

◆ build()

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

◆ buildBackendUri()

◆ buildFrontendUri()

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

◆ buildTypolinkConfiguration()

◆ convertDomainObjectsToIdentityArrays()

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

◆ convertIteratorToArray()

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

◆ convertTransientObjectToArray()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::convertTransientObjectToArray ( \TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject  $object)

Converts a given object recursively into an array.

Parameters
\TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject$object
Returns
array
Todo:
Refactore this into convertDomainObjectsToIdentityArrays()

Definition at line 817 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\convertDomainObjectsToIdentityArrays(), and TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\convertIteratorToArray().

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

◆ getAbsoluteUriScheme()

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

Definition at line 280 of file UriBuilder.php.

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

◆ getAddQueryString()

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

Definition at line 315 of file UriBuilder.php.

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

◆ getAddQueryStringMethod()

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

Definition at line 339 of file UriBuilder.php.

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

◆ getArgumentPrefix()

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

Definition at line 384 of file UriBuilder.php.

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

◆ getArguments()

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

Definition at line 206 of file UriBuilder.php.

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

◆ getArgumentsToBeExcludedFromQueryString()

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

◆ getCreateAbsoluteUri()

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

Definition at line 272 of file UriBuilder.php.

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

◆ getFormat()

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

Definition at line 250 of file UriBuilder.php.

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

◆ getLastArguments()

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

Definition at line 508 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 ( )
Returns
bool

Definition at line 474 of file UriBuilder.php.

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

◆ getRequest()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getRequest ( )
Returns
Request

Definition at line 182 of file UriBuilder.php.

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

◆ getSection()

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

Definition at line 228 of file UriBuilder.php.

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

◆ getTargetPageType()

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

Definition at line 451 of file UriBuilder.php.

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

◆ getTargetPageUid()

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

returns $this->targetPageUid.

Returns
int

Definition at line 430 of file UriBuilder.php.

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

◆ getUseCacheHash()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::getUseCacheHash ( )
Returns
bool

Definition at line 497 of file UriBuilder.php.

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

◆ initializeObject()

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

Life-cycle method that is called by the DI container as soon as this object is completely built

Returns
void

Definition at line 162 of file UriBuilder.php.

◆ injectConfigurationManager()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::injectConfigurationManager ( \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface  $configurationManager)
Parameters
\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface$configurationManager

Definition at line 136 of file UriBuilder.php.

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

◆ injectEnvironmentService()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::injectEnvironmentService ( \TYPO3\CMS\Extbase\Service\EnvironmentService  $environmentService)
Parameters
\TYPO3\CMS\Extbase\Service\EnvironmentService$environmentService

Definition at line 152 of file UriBuilder.php.

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

◆ injectExtensionService()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::injectExtensionService ( \TYPO3\CMS\Extbase\Service\ExtensionService  $extensionService)
Parameters
\TYPO3\CMS\Extbase\Service\ExtensionService$extensionService

Definition at line 144 of file UriBuilder.php.

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

◆ removeDefaultControllerAndAction()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::removeDefaultControllerAndAction ( array  $controllerArguments,
  $extensionName,
  $pluginName 
)
protected

This removes controller and/or action arguments from given controllerArguments if they are equal to the default controller/action of the target plugin. Note: This is only active in FE mode and if feature "skipDefaultArguments" is enabled

See also
::isFeatureEnabled()
Parameters
array$controllerArgumentsthe current controller arguments to be modified
string$extensionNametarget extension name
string$pluginNametarget plugin name
Returns
array

Definition at line 599 of file UriBuilder.php.

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

◆ reset()

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

Resets all UriBuilder options to their default value

Returns
the current UriBuilder to allow method chaining

Definition at line 519 of file UriBuilder.php.

◆ setAbsoluteUriScheme()

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

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

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

Definition at line 291 of file UriBuilder.php.

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

◆ setAddQueryString()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setAddQueryString (   $addQueryString)

If set, the current query parameters will be merged with $this->arguments. Defaults to FALSE.

Parameters
bool$addQueryString
Returns
the current UriBuilder to allow method chaining
See also
TSref/typolink.addQueryString

Definition at line 305 of file UriBuilder.php.

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

◆ setAddQueryStringMethod()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setAddQueryStringMethod (   $addQueryStringMethod)

Sets the method to get the addQueryString parameters. Defaults undefined which results in using QUERY_STRING.

Parameters
string$addQueryStringMethod
Returns
the current UriBuilder to allow method chaining
See also
TSref/typolink.addQueryString.method

Definition at line 329 of file UriBuilder.php.

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

◆ setArgumentPrefix()

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

Specifies the prefix to be used for all arguments.

Parameters
string$argumentPrefix
Returns
the current UriBuilder to allow method chaining

Definition at line 375 of file UriBuilder.php.

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

◆ setArguments()

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

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

Parameters
array$arguments
Returns
the current UriBuilder to allow method chaining

Definition at line 196 of file UriBuilder.php.

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

◆ setArgumentsToBeExcludedFromQueryString()

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

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

Parameters
array$argumentsToBeExcludedFromQueryString
Returns
the current UriBuilder to allow method chaining
See also
TSref/typolink.addQueryString.exclude
setAddQueryString()

Definition at line 354 of file UriBuilder.php.

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

◆ setCreateAbsoluteUri()

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

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

Parameters
bool$createAbsoluteUri
Returns
the current UriBuilder to allow method chaining

Definition at line 262 of file UriBuilder.php.

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

◆ setFormat()

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

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

Parameters
string$format
Returns
the current UriBuilder to allow method chaining

Definition at line 240 of file UriBuilder.php.

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

◆ setLinkAccessRestrictedPages()

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

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

Parameters
bool$linkAccessRestrictedPages
Returns
the current UriBuilder to allow method chaining

Definition at line 396 of file UriBuilder.php.

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

◆ setNoCache()

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

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

Parameters
bool$noCache
Returns
the current UriBuilder to allow method chaining

Definition at line 464 of file UriBuilder.php.

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

◆ setRequest()

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

Sets the current request

Parameters
Request$request
Returns
the current UriBuilder to allow method chaining

Definition at line 173 of file UriBuilder.php.

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

◆ setSection()

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

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

Parameters
string$section
Returns
the current UriBuilder to allow method chaining

Definition at line 218 of file UriBuilder.php.

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

◆ setTargetPageType()

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

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

Parameters
int$targetPageType
Returns
the current UriBuilder to allow method chaining

Definition at line 442 of file UriBuilder.php.

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

◆ setTargetPageUid()

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

Uid of the target page

Parameters
int$targetPageUid
Returns
the current UriBuilder to allow method chaining

Definition at line 418 of file UriBuilder.php.

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

◆ setUseCacheHash()

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::setUseCacheHash (   $useCacheHash)

by default TRUE; if FALSE, no cHash parameter will be appended to the URI If noCache is set, this setting will be ignored.

Parameters
bool$useCacheHash
Returns
the current UriBuilder to allow method chaining

Definition at line 487 of file UriBuilder.php.

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

◆ uriFor()

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

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

Parameters
string$actionNameName of the action to be called
array$controllerArgumentsAdditional query parameters. Will be "namespaced" and merged with $this->arguments.
string$controllerNameName of the target controller. If not set, current ControllerName is used.
string$extensionNameName of the target extension, without underscores. If not set, current ExtensionName is used.
string$pluginNameName of the target plugin. If not set, current PluginName is used.
Returns
string the rendered URI
See also
build()

Definition at line 550 of file UriBuilder.php.

References TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$format, TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\build(), TYPO3\CMS\Core\Utility\ArrayUtility\mergeRecursiveWithOverrule(), and TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\removeDefaultControllerAndAction().

Member Data Documentation

◆ $absoluteUriScheme

◆ $addQueryString

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

◆ $addQueryStringMethod

◆ $argumentPrefix

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

◆ $arguments

◆ $argumentsToBeExcludedFromQueryString

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

◆ $configurationManager

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$configurationManager
protected

◆ $contentObject

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$contentObject
protected

Definition at line 44 of file UriBuilder.php.

◆ $createAbsoluteUri

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

◆ $environmentService

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$environmentService
protected

◆ $extensionService

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$extensionService
protected

◆ $format

◆ $lastArguments

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

◆ $linkAccessRestrictedPages

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

◆ $noCache

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

◆ $request

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

◆ $section

◆ $targetPageType

◆ $targetPageUid

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

◆ $useCacheHash

TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::$useCacheHash = true
protected