‪TYPO3CMS  11.5
ViewHelperResolver.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
17 
18 use Psr\Container\ContainerInterface;
19 use Psr\Http\Message\ServerRequestInterface;
25 use TYPO3Fluid\Fluid\Core\ViewHelper\ViewHelperInterface;
26 
56 class ‪ViewHelperResolver extends \TYPO3Fluid\Fluid\Core\ViewHelper\ViewHelperResolver
57 {
58  protected ContainerInterface ‪$container;
59 
64 
74  public function ‪__construct(ContainerInterface ‪$container, ‪ObjectManagerInterface ‪$objectManager, array $namespaces)
75  {
76  $this->container = ‪$container;
77  // @deprecated since v11, will be removed with 12. Drop argument in ViewHelperResolverFactory
78  $this->objectManager = ‪$objectManager;
79  $this->namespaces = $namespaces;
80  if ((‪$GLOBALS['TYPO3_REQUEST'] ?? null) instanceof ServerRequestInterface
81  && ‪ApplicationType::fromRequest(‪$GLOBALS['TYPO3_REQUEST'])->isFrontend()
82  && $this->‪getBackendUser() instanceof ‪BackendUserAuthentication
83  ) {
84  if ($this->‪getBackendUser()->uc['AdminPanel']['preview_showFluidDebug'] ?? false) {
85  $this->namespaces['f'][] = 'TYPO3\\CMS\\Fluid\\ViewHelpers\\Debug';
86  }
87  }
88  }
89 
94  public function ‪createViewHelperInstanceFromClassName($viewHelperClassName): ViewHelperInterface
95  {
96  if ($this->container instanceof ‪FailsafeContainer) {
97  // The install tool creates VH instances using makeInstance to not rely on symfony DI here,
98  // otherwise we'd have to have all install-tool used ones in ServiceProvider.php. However,
99  // none of the install tool used VH's use injection.
101  $viewHelperInstance = GeneralUtility::makeInstance($viewHelperClassName);
102  return $viewHelperInstance;
103  }
104 
105  if ($this->container->has($viewHelperClassName)) {
107  $viewHelperInstance = $this->container->get($viewHelperClassName);
108  return $viewHelperInstance;
109  }
110 
112  // @deprecated since v11, will be removed with 12. Fallback if extensions VH has no Services.yaml, yet.
113  $viewHelperInstance = $this->objectManager->get($viewHelperClassName);
114  return $viewHelperInstance;
115  }
116 
118  {
119  return ‪$GLOBALS['BE_USER'] ?? null;
120  }
121 }
‪TYPO3\CMS\Core\Http\ApplicationType\fromRequest
‪static static fromRequest(ServerRequestInterface $request)
Definition: ApplicationType.php:62
‪TYPO3\CMS\Fluid\Core\ViewHelper\ViewHelperResolver
Definition: ViewHelperResolver.php:57
‪TYPO3\CMS\Fluid\Core\ViewHelper
Definition: ViewHelperResolver.php:16
‪TYPO3\CMS\Fluid\Core\ViewHelper\ViewHelperResolver\$container
‪ContainerInterface $container
Definition: ViewHelperResolver.php:58
‪TYPO3\CMS\Fluid\Core\ViewHelper\ViewHelperResolver\createViewHelperInstanceFromClassName
‪ViewHelperInterface createViewHelperInstanceFromClassName($viewHelperClassName)
Definition: ViewHelperResolver.php:94
‪TYPO3\CMS\Core\Http\ApplicationType
Definition: ApplicationType.php:52
‪TYPO3\CMS\Extbase\Object\ObjectManagerInterface
Definition: ObjectManagerInterface.php:29
‪TYPO3\CMS\Core\DependencyInjection\FailsafeContainer
Definition: FailsafeContainer.php:26
‪TYPO3\CMS\Fluid\Core\ViewHelper\ViewHelperResolver\getBackendUser
‪getBackendUser()
Definition: ViewHelperResolver.php:117
‪TYPO3\CMS\Fluid\Core\ViewHelper\ViewHelperResolver\$objectManager
‪ObjectManagerInterface $objectManager
Definition: ViewHelperResolver.php:63
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:62
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Fluid\Core\ViewHelper\ViewHelperResolver\__construct
‪__construct(ContainerInterface $container, ObjectManagerInterface $objectManager, array $namespaces)
Definition: ViewHelperResolver.php:74
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50