Skip to content
Snippets Groups Projects
Commit 501e5059 authored by Alexander Schnitzler's avatar Alexander Schnitzler Committed by Andreas Fernandez
Browse files

[TASK] Do not use object manager in RequestHandlerResolver

With this patch, the RequestHandlerResolver no longer uses
the object manager to create new instances of request handlers
but makeInstance instead.

Releases: master
Resolves: #92241
Change-Id: Ided4139ca7c92ab0cb1d642ffc8a9529aedcfe50
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/65650


Tested-by: default avatarTYPO3com <noreply@typo3.com>
Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
Tested-by: default avatarOliver Bartsch <bo@cedev.de>
Tested-by: default avatarAndreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: default avatarOliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: default avatarTorben Hansen <derhansen@gmail.com>
Reviewed-by: default avatarOliver Bartsch <bo@cedev.de>
Reviewed-by: default avatarAndreas Fernandez <a.fernandez@scripting-base.de>
parent b06cc92a
Branches
Tags
No related merge requests found
...@@ -15,8 +15,9 @@ ...@@ -15,8 +15,9 @@
namespace TYPO3\CMS\Extbase\Mvc; namespace TYPO3\CMS\Extbase\Mvc;
use Psr\Container\ContainerInterface;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Configuration\RequestHandlersConfigurationFactory; use TYPO3\CMS\Extbase\Configuration\RequestHandlersConfigurationFactory;
use TYPO3\CMS\Extbase\Object\ObjectManagerInterface;
/** /**
* Analyzes the raw request and delivers a request handler which can handle it. * Analyzes the raw request and delivers a request handler which can handle it.
...@@ -25,9 +26,9 @@ use TYPO3\CMS\Extbase\Object\ObjectManagerInterface; ...@@ -25,9 +26,9 @@ use TYPO3\CMS\Extbase\Object\ObjectManagerInterface;
class RequestHandlerResolver class RequestHandlerResolver
{ {
/** /**
* @var \TYPO3\CMS\Extbase\Object\ObjectManagerInterface * @var ContainerInterface
*/ */
protected $objectManager; private $container;
/** /**
* @var \TYPO3\CMS\Extbase\Configuration\RequestHandlersConfiguration * @var \TYPO3\CMS\Extbase\Configuration\RequestHandlersConfiguration
...@@ -35,18 +36,13 @@ class RequestHandlerResolver ...@@ -35,18 +36,13 @@ class RequestHandlerResolver
private $requestHandlersConfiguration; private $requestHandlersConfiguration;
/** /**
* @param \TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager * @param ContainerInterface $container
*/
public function injectObjectManager(ObjectManagerInterface $objectManager)
{
$this->objectManager = $objectManager;
}
/**
* @param RequestHandlersConfigurationFactory $requestHandlersConfigurationFactory * @param RequestHandlersConfigurationFactory $requestHandlersConfigurationFactory
* @throws \TYPO3\CMS\Extbase\Configuration\Exception
*/ */
public function __construct(RequestHandlersConfigurationFactory $requestHandlersConfigurationFactory) public function __construct(ContainerInterface $container, RequestHandlersConfigurationFactory $requestHandlersConfigurationFactory)
{ {
$this->container = $container;
$this->requestHandlersConfiguration = $requestHandlersConfigurationFactory->createRequestHandlersConfiguration(); $this->requestHandlersConfiguration = $requestHandlersConfigurationFactory->createRequestHandlersConfiguration();
} }
...@@ -62,7 +58,10 @@ class RequestHandlerResolver ...@@ -62,7 +58,10 @@ class RequestHandlerResolver
$suitableRequestHandlers = []; $suitableRequestHandlers = [];
foreach ($this->requestHandlersConfiguration->getRegisteredRequestHandlers() as $requestHandlerClassName) { foreach ($this->requestHandlersConfiguration->getRegisteredRequestHandlers() as $requestHandlerClassName) {
/** @var RequestHandlerInterface $requestHandler */ /** @var RequestHandlerInterface $requestHandler */
$requestHandler = $this->objectManager->get($requestHandlerClassName); $requestHandler = $this->container->has($requestHandlerClassName)
? $this->container->get($requestHandlerClassName)
: GeneralUtility::makeInstance($requestHandlerClassName)
;
if ($requestHandler->canHandleRequest()) { if ($requestHandler->canHandleRequest()) {
$priority = $requestHandler->getPriority(); $priority = $requestHandler->getPriority();
if (isset($suitableRequestHandlers[$priority])) { if (isset($suitableRequestHandlers[$priority])) {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment