events/Classes/Service/ExtbaseConfigurationManagerService.php

42 lines
1.3 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
namespace WerkraumMedia\Events\Service;
use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder;
use TYPO3\CMS\Core\Http\ServerRequest;
use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
final class ExtbaseConfigurationManagerService
{
public function __construct(
private readonly ConfigurationManagerInterface $configurationManager
) {
}
/**
* The mapper uses queries, which rely an on the configuration manager.
* But import is without request, so we ensure it is properly initialized.
*
* This should vanish, see: Documentation/Maintenance.rst
*/
public function configureForBackend(): void
{
// TODO: typo3/cms-core:14.0 Remove condition as this method is provided since 13.
if (method_exists($this->configurationManager, 'setRequest') === false) {
return;
}
$request = new ServerRequest();
$request = $request->withAttribute('applicationType', SystemEnvironmentBuilder::REQUESTTYPE_BE);
$this->configurationManager->setRequest($request);
}
public function getInstanceWithBackendContext(): ConfigurationManagerInterface
{
$this->configureForBackend();
return $this->configurationManager;
}
}