vendor/se7enxweb/site-legacy-bundle/bundle/LegacyMapper/Configuration.php line 34

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Netgen\Bundle\SiteLegacyBundle\LegacyMapper;
  4. use eZ\Publish\Core\MVC\Legacy\Event\PreBuildKernelEvent;
  5. use eZ\Publish\Core\MVC\Legacy\LegacyEvents;
  6. use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use function is_array;
  9. use function is_string;
  10. class Configuration implements EventSubscriberInterface
  11. {
  12. protected ConfigResolverInterface $configResolver;
  13. public function __construct(ConfigResolverInterface $configResolver)
  14. {
  15. $this->configResolver = $configResolver;
  16. }
  17. public static function getSubscribedEvents(): array
  18. {
  19. return [
  20. LegacyEvents::PRE_BUILD_LEGACY_KERNEL => ['onBuildKernel', 64],
  21. ];
  22. }
  23. /**
  24. * Adds settings to the parameters that will be injected into the legacy kernel.
  25. */
  26. public function onBuildKernel(PreBuildKernelEvent $event): void
  27. {
  28. $injectedSettings = $this->configResolver->getParameter('injected_settings', 'netgen_site_legacy');
  29. $injectedMergeSettings = $this->configResolver->getParameter('injected_merge_settings', 'netgen_site_legacy');
  30. $formattedInjectedSettings = [];
  31. $formattedInjectedMergeSettings = [];
  32. foreach ($injectedSettings as $legacyIniName => $legacyIniConfig) {
  33. if (!is_array($legacyIniConfig) || empty($legacyIniConfig)) {
  34. continue;
  35. }
  36. foreach ($legacyIniConfig as $legacyIniValueName => $legacyIniValue) {
  37. if (!is_string($legacyIniValueName)) {
  38. continue;
  39. }
  40. $formattedInjectedSettings[$legacyIniName . '/' . $legacyIniValueName] = $legacyIniValue;
  41. }
  42. }
  43. foreach ($injectedMergeSettings as $legacyIniName => $legacyIniConfig) {
  44. if (!is_array($legacyIniConfig) || empty($legacyIniConfig)) {
  45. continue;
  46. }
  47. foreach ($injectedMergeSettings[$legacyIniName] as $legacyIniValueName => $legacyIniValue) {
  48. if (!is_string($legacyIniValueName) || !is_array($legacyIniValue)) {
  49. continue;
  50. }
  51. $formattedInjectedMergeSettings[$legacyIniName . '/' . $legacyIniValueName] = $legacyIniValue;
  52. }
  53. }
  54. $event->getParameters()->set(
  55. 'injected-settings',
  56. $formattedInjectedSettings + (array) $event->getParameters()->get('injected-settings'),
  57. );
  58. $event->getParameters()->set(
  59. 'injected-merge-settings',
  60. $formattedInjectedMergeSettings + (array) $event->getParameters()->get('injected-merge-settings'),
  61. );
  62. }
  63. }