Attention
TYPO3 v11 has reached end-of-life as of October 31th 2024 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.
Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v11 here: TYPO3 ELTS.
URI builder (Extbase)
The URI builder offers a convenient way to create links in an Extbase context.
Usage in an Extbase controller
The URI builder is available as a property in a controller class which extends the ActionController class.
Example:
<?php
declare(strict_types=1);
namespace MyVendor\MyExtension\Controller\MyController;
use Psr\Http\Message\ResponseInterface;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
final class MyController extends ActionController
{
public function myAction(): ResponseInterface
{
$url = $this->uriBuilder
->reset()
->setTargetPageUid(42)
->uriFor(
'anotherAction',
[
'myRecord' => 21,
],
'MyController',
'myextension',
'myplugin'
);
// do something with $url
}
}
Have a look into the API for the available methods of the URI builder.
Attention
As the URI builder holds state, you have to call reset
before
creating a URL.
Usage in another context
The \TYPO3\
class can be injected
via constructor in a class:
<?php
declare(strict_types=1);
namespace MyVendor\MyExtension\MyClass;
use TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder;
final class MyClass
{
private UriBuilder $uriBuilder;
public function __construct(UriBuilder $uriBuilder)
{
$this->uriBuilder = $uriBuilder;
}
public function doSomething()
{
$url = $this->uriBuilder
->reset()
->setTargetPageUid(42)
->uriFor(
'myAction',
[
'myRecord' => 21,
],
'MyController',
'myextension',
'myplugin'
);
// do something with $url
}
}
API
- class UriBuilder
-
- Fully qualified name
-
\TYPO3\
CMS\ Extbase\ Mvc\ Web\ Routing\ Uri Builder
An URI Builder
- 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"
- param array $arguments
-
the arguments
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- setSection ( string $section)
-
If specified, adds a given HTML anchor to the URI (#...)
- param string $section
-
the section
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- setFormat ( string $format)
-
Specifies the format of the target (e.g. "html" or "xml")
- param string $format
-
the format
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- setCreateAbsoluteUri ( bool $createAbsoluteUri)
-
If set, the URI is prepended with the current base URI. Defaults to FALSE.
- param bool $createAbsoluteUri
-
the createAbsoluteUri
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- setAbsoluteUriScheme ( string $absoluteUriScheme)
-
Sets the scheme that should be used for absolute URIs in FE mode
- param string $absoluteUriScheme
-
the scheme to be used for absolute URIs
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- setLanguage ( string $language)
-
Enforces a URI / link to a page to a specific language (or use "current")
- param string $language
-
the language
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- setAddQueryString ( bool $addQueryString)
-
If set, the current query parameters will be merged with $this->arguments. Defaults to FALSE.
- param bool $addQueryString
-
the addQueryString
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- setArgumentsToBeExcludedFromQueryString ( array $argumentsToBeExcludedFromQueryString)
-
A list of arguments to be excluded from the query parameters Only active if addQueryString is set
- param array $argumentsToBeExcludedFromQueryString
-
the argumentsToBeExcludedFromQueryString
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- setArgumentPrefix ( string $argumentPrefix)
-
Specifies the prefix to be used for all arguments.
- param string $argumentPrefix
-
the argumentPrefix
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- setLinkAccessRestrictedPages ( bool $linkAccessRestrictedPages)
-
If set, URIs for pages without access permissions will be created
- param bool $linkAccessRestrictedPages
-
the linkAccessRestrictedPages
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- setTargetPageUid ( int $targetPageUid)
-
Uid of the target page
- param int $targetPageUid
-
the targetPageUid
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- setTargetPageType ( int $targetPageType)
-
Sets the page type of the target URI. Defaults to 0
- param int $targetPageType
-
the targetPageType
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- setNoCache ( bool $noCache)
-
by default FALSE; if TRUE, &no_cache=1 will be appended to the URI
- param bool $noCache
-
the noCache
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- reset ( )
-
Resets all UriBuilder options to their default value
- returntype
-
TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
- Returns
-
the current UriBuilder to allow method chaining
- uriFor ( string $actionName = NULL, array $controllerArguments = NULL, string $controllerName = NULL, string $extensionName = NULL, string $pluginName = NULL)
-
Creates an URI used for linking to an Extbase action.
Works in Frontend and Backend mode of TYPO3.
- param string $actionName
-
Name of the action to be called, default: NULL
- param array $controllerArguments
-
Additional query parameters. Will be "namespaced" and merged with $this->arguments., default: NULL
- param string $controllerName
-
Name of the target controller. If not set, current ControllerName is used., default: NULL
- param string $extensionName
-
Name of the target extension, without underscores. If not set, current ExtensionName is used., default: NULL
- param string $pluginName
-
Name of the target plugin. If not set, current PluginName is used., default: NULL
- returntype
-
string
- Returns
-
the rendered URI