‪TYPO3CMS  11.5
UriBuilder.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use Psr\Http\Message\ServerRequestInterface;
35 use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
36 
41 {
45  protected ‪$configurationManager;
46 
50  protected ‪$extensionService;
51 
57  protected ‪$contentObject;
58 
62  protected ‪$request;
63 
67  protected ‪$arguments = [];
68 
74  protected ‪$lastArguments = [];
75 
79  protected ‪$section = '';
80 
84  protected ‪$createAbsoluteUri = false;
85 
89  protected ‪$absoluteUriScheme;
90 
94  protected ‪$addQueryString = false;
95 
100 
104  protected ‪$linkAccessRestrictedPages = false;
105 
109  protected ‪$targetPageUid;
110 
114  protected ‪$targetPageType = 0;
115 
119  protected ‪$language;
120 
124  protected ‪$noCache = false;
125 
129  protected ‪$format = '';
130 
134  protected ‪$argumentPrefix;
135 
141  {
142  $this->configurationManager = ‪$configurationManager;
143  }
144 
150  {
151  $this->extensionService = ‪$extensionService;
152  }
153 
158  public function ‪initializeObject(): void
159  {
160  $this->contentObject = $this->configurationManager->getContentObject()
161  ?? GeneralUtility::makeInstance(ContentObjectRenderer::class);
162  }
163 
172  {
173  $this->request = ‪$request;
174  return $this;
175  }
176 
181  public function ‪getRequest(): ?‪Request
182  {
183  return ‪$this->request;
184  }
185 
194  public function ‪setArguments(array ‪$arguments): ‪UriBuilder
195  {
196  $this->arguments = ‪$arguments;
197  return $this;
198  }
199 
204  public function ‪getArguments(): array
205  {
206  return ‪$this->arguments;
207  }
208 
215  public function ‪setSection(string ‪$section): ‪UriBuilder
216  {
217  $this->section = ‪$section;
218  return $this;
219  }
220 
225  public function ‪getSection(): string
226  {
227  return ‪$this->section;
228  }
229 
236  public function ‪setFormat(string ‪$format): ‪UriBuilder
237  {
238  $this->format = ‪$format;
239  return $this;
240  }
241 
246  public function ‪getFormat(): string
247  {
248  return ‪$this->format;
249  }
250 
258  {
259  $this->createAbsoluteUri = ‪$createAbsoluteUri;
260  return $this;
261  }
262 
267  public function ‪getCreateAbsoluteUri(): bool
268  {
270  }
271 
276  public function ‪getAbsoluteUriScheme(): ?string
277  {
279  }
280 
288  {
289  $this->absoluteUriScheme = ‪$absoluteUriScheme;
290  return $this;
291  }
292 
298  public function ‪setLanguage(?string ‪$language): ‪UriBuilder
299  {
300  $this->language = ‪$language;
301  return $this;
302  }
303 
304  public function ‪getLanguage(): ?string
305  {
306  return ‪$this->language;
307  }
308 
317  {
318  $this->addQueryString = ‪$addQueryString;
319  return $this;
320  }
321 
326  public function ‪getAddQueryString(): bool
327  {
329  }
330 
345  public function ‪setAddQueryStringMethod(string $addQueryStringMethod): ‪UriBuilder
346  {
347  trigger_error('Calling UriBuilder->setAddQueryStringMethod() has no effect anymore and will be removed in TYPO3 v12. Remove any call in your custom code, as it will result in a fatal error.', E_USER_DEPRECATED);
348  return $this;
349  }
350 
361  {
362  $this->argumentsToBeExcludedFromQueryString = ‪$argumentsToBeExcludedFromQueryString;
363  return $this;
364  }
365 
370  public function ‪getArgumentsToBeExcludedFromQueryString(): array
371  {
373  }
374 
381  public function ‪setArgumentPrefix(string ‪$argumentPrefix): ‪UriBuilder
382  {
383  $this->argumentPrefix = ‪$argumentPrefix;
384  return $this;
385  }
386 
391  public function ‪getArgumentPrefix(): ?string
392  {
394  }
395 
403  {
404  $this->linkAccessRestrictedPages = ‪$linkAccessRestrictedPages;
405  return $this;
406  }
407 
412  public function ‪getLinkAccessRestrictedPages(): bool
413  {
415  }
416 
423  public function ‪setTargetPageUid(int ‪$targetPageUid): UriBuilder
424  {
425  $this->targetPageUid = ‪$targetPageUid;
426  return $this;
427  }
428 
435  public function ‪getTargetPageUid(): ?int
436  {
438  }
439 
447  {
448  $this->targetPageType = ‪$targetPageType;
449  return $this;
450  }
451 
456  public function ‪getTargetPageType(): int
457  {
459  }
460 
467  public function ‪setNoCache(bool ‪$noCache): ‪UriBuilder
468  {
469  $this->noCache = ‪$noCache;
470  return $this;
471  }
472 
477  public function ‪getNoCache(): bool
478  {
479  return ‪$this->noCache;
480  }
481 
489  public function ‪getLastArguments(): array
490  {
492  }
493 
499  public function ‪reset(): ‪UriBuilder
500  {
501  $this->arguments = [];
502  $this->section = '';
503  $this->format = '';
504  $this->language = null;
505  $this->createAbsoluteUri = false;
506  $this->addQueryString = false;
507  $this->argumentsToBeExcludedFromQueryString = [];
508  $this->linkAccessRestrictedPages = false;
509  $this->targetPageUid = null;
510  $this->targetPageType = 0;
511  $this->noCache = false;
512  $this->argumentPrefix = null;
513  $this->absoluteUriScheme = null;
514  /*
515  * $this->request MUST NOT be reset here because the request is actually a hard dependency and not part
516  * of the internal state of this object.
517  * todo: consider making the request a constructor dependency or get rid of it's usage
518  */
519  return $this;
520  }
521 
534  public function ‪uriFor(
535  ?string $actionName = null,
536  ?array $controllerArguments = null,
537  ?string $controllerName = null,
538  ?string $extensionName = null,
539  ?string $pluginName = null
540  ): string {
541  $controllerArguments = $controllerArguments ?? [];
542 
543  if ($actionName !== null) {
544  $controllerArguments['action'] = $actionName;
545  }
546  if ($controllerName !== null) {
547  $controllerArguments['controller'] = $controllerName;
548  } else {
549  $controllerArguments['controller'] = $this->request->getControllerName();
550  }
551  if ($extensionName === null) {
552  $extensionName = $this->request->getControllerExtensionName();
553  }
554  $isFrontend = (‪$GLOBALS['TYPO3_REQUEST'] ?? null) instanceof ServerRequestInterface
555  && ‪ApplicationType::fromRequest(‪$GLOBALS['TYPO3_REQUEST'])->isFrontend();
556  if ($pluginName === null && $isFrontend) {
557  $pluginName = $this->extensionService->getPluginNameByAction($extensionName, $controllerArguments['controller'], $controllerArguments['action'] ?? null);
558  }
559  if ($pluginName === null) {
560  $pluginName = $this->request->getPluginName();
561  }
562  if ($isFrontend && $this->configurationManager->isFeatureEnabled('skipDefaultArguments')) {
563  $controllerArguments = $this->‪removeDefaultControllerAndAction($controllerArguments, $extensionName, $pluginName);
564  }
565  if ($this->targetPageUid === null && $isFrontend) {
566  $this->targetPageUid = $this->extensionService->getTargetPidByPlugin($extensionName, $pluginName);
567  }
568  if ($this->format !== '') {
569  $controllerArguments['format'] = ‪$this->format;
570  }
571  if ($this->argumentPrefix !== null) {
572  $prefixedControllerArguments = [$this->argumentPrefix => $controllerArguments];
573  } else {
574  $pluginNamespace = $this->extensionService->getPluginNamespace($extensionName, $pluginName);
575  $prefixedControllerArguments = [$pluginNamespace => $controllerArguments];
576  }
577  ‪ArrayUtility::mergeRecursiveWithOverrule($this->arguments, $prefixedControllerArguments);
578  return $this->‪build();
579  }
580 
592  protected function ‪removeDefaultControllerAndAction(array $controllerArguments, string $extensionName, string $pluginName): array
593  {
594  $defaultControllerName = $this->extensionService->getDefaultControllerNameByPlugin($extensionName, $pluginName);
595  if (isset($controllerArguments['action'])) {
596  $defaultActionName = $this->extensionService->getDefaultActionNameByPluginAndController($extensionName, $pluginName, $controllerArguments['controller']);
597  if ($controllerArguments['action'] === $defaultActionName) {
598  unset($controllerArguments['action']);
599  }
600  }
601  if ($controllerArguments['controller'] === $defaultControllerName) {
602  unset($controllerArguments['controller']);
603  }
604  return $controllerArguments;
605  }
606 
615  public function ‪build(): string
616  {
617  if ((‪$GLOBALS['TYPO3_REQUEST'] ?? null) instanceof ServerRequestInterface
618  && ‪ApplicationType::fromRequest(‪$GLOBALS['TYPO3_REQUEST'])->isBackend()
619  ) {
620  return $this->‪buildBackendUri();
621  }
622  return $this->‪buildFrontendUri();
623  }
624 
635  public function ‪buildBackendUri(): string
636  {
637  ‪$arguments = [];
638  if ($this->addQueryString === true) {
639  ‪$arguments = GeneralUtility::_GET();
640  foreach ($this->argumentsToBeExcludedFromQueryString as $argumentToBeExcluded) {
641  $argumentArrayToBeExcluded = [];
642  parse_str($argumentToBeExcluded, $argumentArrayToBeExcluded);
644  }
645  } else {
646  $id = GeneralUtility::_GP('id');
647  if ($id !== null) {
648  ‪$arguments['id'] = $id;
649  }
650  }
651  // @todo Should be replaced as soon as we have a PSR-7 object here
652  if ((‪$GLOBALS['TYPO3_REQUEST'] ?? null) instanceof ServerRequestInterface
653  && ($route = ‪$GLOBALS['TYPO3_REQUEST']->getAttribute('route')) instanceof Route
654  ) {
655  ‪$arguments['route'] = $route->getPath();
656  }
659  $this->lastArguments = ‪$arguments;
660  $routeName = ‪$arguments['route'] ?? null;
661  unset(‪$arguments['route'], ‪$arguments['token']);
662  $backendUriBuilder = GeneralUtility::makeInstance(\‪TYPO3\CMS\Backend\Routing\UriBuilder::class);
663  try {
664  if ($this->createAbsoluteUri) {
665  $uri = (string)$backendUriBuilder->buildUriFromRoutePath($routeName, ‪$arguments, \‪TYPO3\CMS\Backend\Routing\UriBuilder::ABSOLUTE_URL);
666  } else {
667  $uri = (string)$backendUriBuilder->buildUriFromRoutePath($routeName, ‪$arguments, \‪TYPO3\CMS\Backend\Routing\UriBuilder::ABSOLUTE_PATH);
668  }
669  } catch (ResourceNotFoundException $e) {
670  try {
671  if ($this->createAbsoluteUri) {
672  $uri = (string)$backendUriBuilder->buildUriFromRoute($routeName, ‪$arguments, \‪TYPO3\CMS\Backend\Routing\UriBuilder::ABSOLUTE_URL);
673  } else {
674  $uri = (string)$backendUriBuilder->buildUriFromRoute($routeName, ‪$arguments, \‪TYPO3\CMS\Backend\Routing\UriBuilder::ABSOLUTE_PATH);
675  }
676  } catch (RouteNotFoundException $e) {
677  $uri = '';
678  }
679  }
680  if ($this->section !== '') {
681  $uri .= '#' . ‪$this->section;
682  }
683  return $uri;
684  }
685 
693  public function ‪buildFrontendUri(): string
694  {
695  $typolinkConfiguration = $this->‪buildTypolinkConfiguration();
696  if ($this->createAbsoluteUri === true) {
697  $typolinkConfiguration['forceAbsoluteUrl'] = true;
698  if ($this->absoluteUriScheme !== null) {
699  $typolinkConfiguration['forceAbsoluteUrl.']['scheme'] = ‪$this->absoluteUriScheme;
700  }
701  }
702  // Other than stated in the doc block, typoLink_URL does not always return a string
703  // Thus, we explicitly cast to string here.
704  $uri = (string)$this->contentObject->typoLink_URL($typolinkConfiguration);
705  return $uri;
706  }
707 
714  protected function ‪buildTypolinkConfiguration(): array
715  {
716  $typolinkConfiguration = [];
717  $typolinkConfiguration['parameter'] = $this->targetPageUid ?? ‪$GLOBALS['TSFE']->id ?? '';
718  if ($this->targetPageType !== 0) {
719  $typolinkConfiguration['parameter'] .= ',' . ‪$this->targetPageType;
720  } elseif ($this->format !== '') {
721  ‪$targetPageType = $this->extensionService->getTargetPageTypeByFormat($this->request->getControllerExtensionName(), $this->format);
722  $typolinkConfiguration['parameter'] .= ',' . ‪$targetPageType;
723  }
724  if (!empty($this->arguments)) {
725  ‪$arguments = $this->‪convertDomainObjectsToIdentityArrays($this->arguments);
726  $this->lastArguments = ‪$arguments;
727  $typolinkConfiguration['additionalParams'] = ‪HttpUtility::buildQueryString(‪$arguments, '&');
728  }
729  if ($this->addQueryString === true) {
730  $typolinkConfiguration['addQueryString'] = 1;
731  if (!empty($this->argumentsToBeExcludedFromQueryString)) {
732  $typolinkConfiguration['addQueryString.'] = [
733  'exclude' => implode(',', $this->argumentsToBeExcludedFromQueryString),
734  ];
735  }
736  }
737  if ($this->language !== null) {
738  $typolinkConfiguration['language'] = ‪$this->language;
739  }
740 
741  if ($this->noCache === true) {
742  $typolinkConfiguration['no_cache'] = 1;
743  }
744  if ($this->section !== '') {
745  $typolinkConfiguration['section'] = ‪$this->section;
746  }
747  if ($this->linkAccessRestrictedPages === true) {
748  $typolinkConfiguration['linkAccessRestrictedPages'] = 1;
749  }
750  return $typolinkConfiguration;
751  }
752 
761  protected function ‪convertDomainObjectsToIdentityArrays(array ‪$arguments): array
762  {
763  foreach (‪$arguments as $argumentKey => $argumentValue) {
764  // if we have a LazyLoadingProxy here, make sure to get the real instance for further processing
765  if ($argumentValue instanceof LazyLoadingProxy) {
766  $argumentValue = $argumentValue->_loadRealInstance();
767  // also update the value in the arguments array, because the lazyLoaded object could be
768  // hidden and thus the $argumentValue would be NULL.
769  ‪$arguments[$argumentKey] = $argumentValue;
770  }
771  if ($argumentValue instanceof \Iterator) {
772  $argumentValue = $this->‪convertIteratorToArray($argumentValue);
773  }
774  if ($argumentValue instanceof AbstractDomainObject) {
775  if ($argumentValue->getUid() !== null) {
776  ‪$arguments[$argumentKey] = $argumentValue->getUid();
777  } elseif ($argumentValue instanceof ‪AbstractValueObject) {
778  ‪$arguments[$argumentKey] = $this->‪convertTransientObjectToArray($argumentValue);
779  } else {
780  throw new InvalidArgumentValueException('Could not serialize Domain Object ' . get_class($argumentValue) . '. It is neither an Entity with identity properties set, nor a Value Object.', 1260881688);
781  }
782  } elseif (is_array($argumentValue)) {
783  ‪$arguments[$argumentKey] = $this->‪convertDomainObjectsToIdentityArrays($argumentValue);
784  }
785  }
786  return ‪$arguments;
787  }
788 
793  protected function ‪convertIteratorToArray(\Iterator $iterator): array
794  {
795  if (method_exists($iterator, 'toArray')) {
796  $array = $iterator->toArray();
797  } else {
798  $array = iterator_to_array($iterator);
799  }
800  return $array;
801  }
802 
811  public function ‪convertTransientObjectToArray(‪AbstractDomainObject $object): array
812  {
813  $result = [];
814  foreach ($object->‪_getProperties() as $propertyName => $propertyValue) {
815  if ($propertyValue instanceof \Iterator) {
816  $propertyValue = $this->‪convertIteratorToArray($propertyValue);
817  }
818  if ($propertyValue instanceof AbstractDomainObject) {
819  if ($propertyValue->getUid() !== null) {
820  $result[$propertyName] = $propertyValue->getUid();
821  } else {
822  $result[$propertyName] = $this->‪convertTransientObjectToArray($propertyValue);
823  }
824  } elseif (is_array($propertyValue)) {
825  $result[$propertyName] = $this->‪convertDomainObjectsToIdentityArrays($propertyValue);
826  } else {
827  $result[$propertyName] = $propertyValue;
828  }
829  }
830  return $result;
831  }
832 }
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setArguments
‪static setArguments(array $arguments)
Definition: UriBuilder.php:176
‪TYPO3\CMS\Core\Http\ApplicationType\fromRequest
‪static static fromRequest(ServerRequestInterface $request)
Definition: ApplicationType.php:62
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setTargetPageType
‪static setTargetPageType(int $targetPageType)
Definition: UriBuilder.php:428
‪TYPO3\CMS\Extbase\Mvc\Web\Routing
Definition: UriBuilder.php:18
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$targetPageUid
‪int null $targetPageUid
Definition: UriBuilder.php:96
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setAddQueryStringMethod
‪static setAddQueryStringMethod(string $addQueryStringMethod)
Definition: UriBuilder.php:327
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getArgumentsToBeExcludedFromQueryString
‪array getArgumentsToBeExcludedFromQueryString()
Definition: UriBuilder.php:352
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getFormat
‪string getFormat()
Definition: UriBuilder.php:228
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getLastArguments
‪array getLastArguments()
Definition: UriBuilder.php:471
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
Definition: UriBuilder.php:41
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$section
‪string $section
Definition: UriBuilder.php:72
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$extensionService
‪TYPO3 CMS Extbase Service ExtensionService $extensionService
Definition: UriBuilder.php:48
‪TYPO3
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getAddQueryString
‪bool getAddQueryString()
Definition: UriBuilder.php:308
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\convertIteratorToArray
‪array convertIteratorToArray(\Iterator $iterator)
Definition: UriBuilder.php:775
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$argumentPrefix
‪string null $argumentPrefix
Definition: UriBuilder.php:116
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getArguments
‪array getArguments()
Definition: UriBuilder.php:186
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setLinkAccessRestrictedPages
‪static setLinkAccessRestrictedPages(bool $linkAccessRestrictedPages)
Definition: UriBuilder.php:384
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$request
‪Request null $request
Definition: UriBuilder.php:58
‪TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface
Definition: ConfigurationManagerInterface.php:28
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\convertDomainObjectsToIdentityArrays
‪array convertDomainObjectsToIdentityArrays(array $arguments)
Definition: UriBuilder.php:743
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\reset
‪static reset()
Definition: UriBuilder.php:481
‪TYPO3\CMS\Extbase\Mvc\Exception\InvalidArgumentValueException
Definition: InvalidArgumentValueException.php:25
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\buildBackendUri
‪string buildBackendUri()
Definition: UriBuilder.php:617
‪TYPO3\CMS\Core\Utility\ArrayUtility\mergeRecursiveWithOverrule
‪static mergeRecursiveWithOverrule(array &$original, array $overrule, $addKeys=true, $includeEmptyValues=true, $enableUnsetFeature=true)
Definition: ArrayUtility.php:654
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getTargetPageType
‪int getTargetPageType()
Definition: UriBuilder.php:438
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$targetPageType
‪int $targetPageType
Definition: UriBuilder.php:100
‪TYPO3\CMS\Backend\Routing\Route
Definition: Route.php:24
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\removeDefaultControllerAndAction
‪array removeDefaultControllerAndAction(array $controllerArguments, string $extensionName, string $pluginName)
Definition: UriBuilder.php:574
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\initializeObject
‪initializeObject()
Definition: UriBuilder.php:140
‪TYPO3\CMS\Core\Http\ApplicationType
Definition: ApplicationType.php:52
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$absoluteUriScheme
‪string null $absoluteUriScheme
Definition: UriBuilder.php:80
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$contentObject
‪TYPO3 CMS Frontend ContentObject ContentObjectRenderer $contentObject
Definition: UriBuilder.php:54
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getSection
‪string getSection()
Definition: UriBuilder.php:207
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$arguments
‪array $arguments
Definition: UriBuilder.php:62
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getLanguage
‪getLanguage()
Definition: UriBuilder.php:286
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setArgumentPrefix
‪static setArgumentPrefix(string $argumentPrefix)
Definition: UriBuilder.php:363
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$lastArguments
‪array $lastArguments
Definition: UriBuilder.php:68
‪TYPO3\CMS\Backend\Routing\Exception\RouteNotFoundException
Definition: RouteNotFoundException.php:21
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$configurationManager
‪TYPO3 CMS Extbase Configuration ConfigurationManagerInterface $configurationManager
Definition: UriBuilder.php:44
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\convertTransientObjectToArray
‪array convertTransientObjectToArray(AbstractDomainObject $object)
Definition: UriBuilder.php:793
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$linkAccessRestrictedPages
‪bool $linkAccessRestrictedPages
Definition: UriBuilder.php:92
‪TYPO3\CMS\Extbase\DomainObject\AbstractValueObject
Definition: AbstractValueObject.php:24
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getRequest
‪Request null getRequest()
Definition: UriBuilder.php:163
‪TYPO3\CMS\Core\Utility\ArrayUtility\arrayDiffKeyRecursive
‪static array arrayDiffKeyRecursive(array $array1, array $array2)
Definition: ArrayUtility.php:768
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$language
‪string null $language
Definition: UriBuilder.php:104
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\injectConfigurationManager
‪injectConfigurationManager(ConfigurationManagerInterface $configurationManager)
Definition: UriBuilder.php:122
‪TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject
Definition: AbstractDomainObject.php:31
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setRequest
‪static setRequest(Request $request)
Definition: UriBuilder.php:153
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setAbsoluteUriScheme
‪static setAbsoluteUriScheme(string $absoluteUriScheme)
Definition: UriBuilder.php:269
‪TYPO3\CMS\Core\Utility\HttpUtility\buildQueryString
‪static string buildQueryString(array $parameters, string $prependCharacter='', bool $skipEmptyParameters=false)
Definition: HttpUtility.php:171
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getTargetPageUid
‪int null getTargetPageUid()
Definition: UriBuilder.php:417
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getCreateAbsoluteUri
‪bool getCreateAbsoluteUri()
Definition: UriBuilder.php:249
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setCreateAbsoluteUri
‪static setCreateAbsoluteUri(bool $createAbsoluteUri)
Definition: UriBuilder.php:239
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\buildTypolinkConfiguration
‪array buildTypolinkConfiguration()
Definition: UriBuilder.php:696
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\uriFor
‪string uriFor(?string $actionName=null, ?array $controllerArguments=null, ?string $controllerName=null, ?string $extensionName=null, ?string $pluginName=null)
Definition: UriBuilder.php:516
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$format
‪string $format
Definition: UriBuilder.php:112
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setNoCache
‪static setNoCache(bool $noCache)
Definition: UriBuilder.php:449
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getArgumentPrefix
‪string null getArgumentPrefix()
Definition: UriBuilder.php:373
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$noCache
‪bool $noCache
Definition: UriBuilder.php:108
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$addQueryString
‪bool $addQueryString
Definition: UriBuilder.php:84
‪TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject\_getProperties
‪array _getProperties()
Definition: AbstractDomainObject.php:135
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getNoCache
‪bool getNoCache()
Definition: UriBuilder.php:459
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\injectExtensionService
‪injectExtensionService(ExtensionService $extensionService)
Definition: UriBuilder.php:131
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setAddQueryString
‪static setAddQueryString(bool $addQueryString)
Definition: UriBuilder.php:298
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setTargetPageUid
‪static setTargetPageUid(int $targetPageUid)
Definition: UriBuilder.php:405
‪TYPO3\CMS\Core\Utility\ArrayUtility
Definition: ArrayUtility.php:24
‪TYPO3\CMS\Extbase\Persistence\Generic\LazyLoadingProxy
Definition: LazyLoadingProxy.php:29
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setSection
‪static setSection(string $section)
Definition: UriBuilder.php:197
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Extbase\Service\ExtensionService
Definition: ExtensionService.php:34
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$argumentsToBeExcludedFromQueryString
‪array $argumentsToBeExcludedFromQueryString
Definition: UriBuilder.php:88
‪TYPO3\CMS\Backend\Routing\Exception\ResourceNotFoundException
Definition: ResourceNotFoundException.php:23
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getAbsoluteUriScheme
‪string null getAbsoluteUriScheme()
Definition: UriBuilder.php:258
‪TYPO3\CMS\Core\Utility\HttpUtility
Definition: HttpUtility.php:22
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\getLinkAccessRestrictedPages
‪bool getLinkAccessRestrictedPages()
Definition: UriBuilder.php:394
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setFormat
‪static setFormat(string $format)
Definition: UriBuilder.php:218
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setLanguage
‪UriBuilder setLanguage(?string $language)
Definition: UriBuilder.php:280
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\buildFrontendUri
‪string buildFrontendUri()
Definition: UriBuilder.php:675
‪TYPO3\CMS\Extbase\Mvc\Request
Definition: Request.php:39
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\build
‪string build()
Definition: UriBuilder.php:597
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\$createAbsoluteUri
‪bool $createAbsoluteUri
Definition: UriBuilder.php:76
‪TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder\setArgumentsToBeExcludedFromQueryString
‪static setArgumentsToBeExcludedFromQueryString(array $argumentsToBeExcludedFromQueryString)
Definition: UriBuilder.php:342