mirror of
https://github.com/werkraum-media/events.git
synced 2024-11-23 00:16:10 +01:00
41 lines
1.3 KiB
PHP
41 lines
1.3 KiB
PHP
<?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;
|
|
}
|
|
}
|