From b118b48468affd272d685f4b613007e8b025b335 Mon Sep 17 00:00:00 2001 From: Benjamin Dalsass Date: Tue, 21 Nov 2023 08:19:27 +0100 Subject: [PATCH] =?UTF-8?q?N=C2=B06933=20-=20SF=206.4=20-=20Remove=20depre?= =?UTF-8?q?cated=20calls=20-=20AbstractController=20(remove=20getSubscribe?= =?UTF-8?q?dServices=20override,=20add=20setter=20for=20router=20service?= =?UTF-8?q?=20injection)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Controller/AbstractController.php | 38 +++++-------------- 1 file changed, 10 insertions(+), 28 deletions(-) diff --git a/datamodels/2.x/itop-portal-base/portal/src/Controller/AbstractController.php b/datamodels/2.x/itop-portal-base/portal/src/Controller/AbstractController.php index 54904623a7..7a29fdbdd8 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Controller/AbstractController.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Controller/AbstractController.php @@ -21,6 +21,8 @@ namespace Combodo\iTop\Portal\Controller; use \Symfony\Bundle\FrameworkBundle\Controller\AbstractController as SymfonyAbstractController; +use Symfony\Component\Routing\RouterInterface; +use Symfony\Contracts\Service\Attribute\Required; /** * Class AbstractController @@ -31,33 +33,13 @@ use \Symfony\Bundle\FrameworkBundle\Controller\AbstractController as SymfonyAbst */ abstract class AbstractController extends SymfonyAbstractController { - /** - * Return services needed inside controllers. - * Allow access to service via $controller->get(`service_name`). - * - * Improvement: Use service dependency injection - * - * @return array array of service injected to controllers - * @since 3.1.0 - * - */ - public static function getSubscribedServices(): array + /** @var \Symfony\Component\Routing\RouterInterface symfony router */ + private RouterInterface $oRouterInterface; + + #[Required] + public function setRouter(RouterInterface $oRouterInterface): void { - return array_merge(parent::getSubscribedServices(), [ - 'brick_collection' => 'Combodo\iTop\Portal\Brick\BrickCollection', - 'request_manipulator' => 'Combodo\iTop\Portal\Helper\RequestManipulatorHelper', - 'scope_validator' => 'Combodo\iTop\Portal\Helper\ScopeValidatorHelper', - 'security_helper' => 'Combodo\iTop\Portal\Helper\SecurityHelper', - 'context_manipulator' => 'Combodo\iTop\Portal\Helper\ContextManipulatorHelper', - 'navigation_rule_helper' => 'Combodo\iTop\Portal\Helper\NavigationRuleHelper', - 'ui_extensions_helper' => 'Combodo\iTop\Portal\Helper\UIExtensionsHelper', - 'lifecycle_validator' => 'Combodo\iTop\Portal\Helper\LifecycleValidatorHelper', - 'url_generator' => 'router', - 'object_form_handler' => 'Combodo\iTop\Portal\Helper\ObjectFormHandlerHelper', - 'browse_brick' => 'Combodo\iTop\Portal\Helper\BrowseBrickHelper', - 'brick_controller_helper' => 'Combodo\iTop\Portal\Helper\BrickControllerHelper', - 'session_message_helper' => 'Combodo\iTop\Portal\Helper\SessionMessageHelper', - ]); + $this->oRouterInterface = $oRouterInterface; } /** @@ -76,7 +58,7 @@ abstract class AbstractController extends SymfonyAbstractController */ protected function ForwardToRoute($sRouteName, $aRouteParams, $aQueryParameters, $bPreserveDefaultRouteParams = true) { - $oRouteCollection = $this->get('router')->getRouteCollection(); + $oRouteCollection = $this->oRouterInterface->getRouteCollection(); $aRouteDefaults = $oRouteCollection->get($sRouteName)->getDefaults(); if ($bPreserveDefaultRouteParams) { @@ -113,7 +95,7 @@ abstract class AbstractController extends SymfonyAbstractController */ protected function GetControllerNameFromRoute($sRouteName) { - $oRouteCollection = $this->get('router')->getRouteCollection(); + $oRouteCollection = $this->oRouterInterface->getRouteCollection(); $aRouteDefaults = $oRouteCollection->get($sRouteName)->getDefaults(); return $aRouteDefaults['_controller'];