objectManager = $objectManager; $this->configurationManager = $configurationManager; } /** * Call finisher classes after submit * * @param User $user * @param string $actionMethodName * @param array $settings * @param ContentObjectRenderer $contentObject */ public function callFinishers( User $user, $actionMethodName, $settings, ContentObjectRenderer $contentObject ) { foreach ($this->getFinisherClasses($settings) as $finisherSettings) { /** @var FinisherService $finisherService */ $finisherService = $this->objectManager->get(FinisherService::class, $user, $settings, $contentObject); $finisherService->setClass($finisherSettings['class']); $finisherService->setRequirePath($finisherSettings['require'] ?? ''); $finisherService->setConfiguration($finisherSettings['config'] ?? []); $finisherService->setActionMethodName($actionMethodName); $finisherService->start(); } } /** * Get all finisher classes from typoscript and sort them * * @param array $settings * @return array */ protected function getFinisherClasses($settings) { $finishers = (array)$settings['finishers']; ksort($finishers); return $finishers; } }