vendor/shopware/storefront/Theme/StorefrontPluginRegistry.php line 64
<?php declare(strict_types=1);namespace Shopware\Storefront\Theme;use Shopware\Core\Framework\App\ActiveAppsLoader;use Shopware\Core\Framework\Bundle;use Shopware\Core\Framework\Log\Package;use Shopware\Storefront\Theme\StorefrontPluginConfiguration\AbstractStorefrontPluginConfigurationFactory;use Shopware\Storefront\Theme\StorefrontPluginConfiguration\StorefrontPluginConfigurationCollection;use Symfony\Component\HttpKernel\KernelInterface;use Symfony\Contracts\Service\ResetInterface;#[Package('storefront')]class StorefrontPluginRegistry implements StorefrontPluginRegistryInterface, ResetInterface{final public const BASE_THEME_NAME = 'Storefront';private ?StorefrontPluginConfigurationCollection $pluginConfigurations = null;/*** @internal*/public function __construct(private readonly KernelInterface $kernel,private readonly AbstractStorefrontPluginConfigurationFactory $pluginConfigurationFactory,private readonly ActiveAppsLoader $activeAppsLoader) {}public function getConfigurations(): StorefrontPluginConfigurationCollection{if ($this->pluginConfigurations) {return $this->pluginConfigurations;}$this->pluginConfigurations = new StorefrontPluginConfigurationCollection();$this->addPluginConfigs();$this->addAppConfigs();return $this->pluginConfigurations ?? new StorefrontPluginConfigurationCollection();}public function reset(): void{$this->pluginConfigurations = null;}private function addPluginConfigs(): void{foreach ($this->kernel->getBundles() as $bundle) {if (!$bundle instanceof Bundle) {continue;}$config = $this->pluginConfigurationFactory->createFromBundle($bundle);$this->pluginConfigurations === null ?: $this->pluginConfigurations->add($config);}}private function addAppConfigs(): void{foreach ($this->activeAppsLoader->getActiveApps() as $app) {$config = $this->pluginConfigurationFactory->createFromApp($app['name'], $app['path']);$this->pluginConfigurations === null ?: $this->pluginConfigurations->add($config);}}}