vendor/shopware/core/System/SystemConfig/MemoizedSystemConfigLoader.php line 33

  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\System\SystemConfig;
  3. use Shopware\Core\Framework\Log\Package;
  4. use Shopware\Core\System\SystemConfig\Store\MemoizedSystemConfigStore;
  5. #[Package('system-settings')]
  6. class MemoizedSystemConfigLoader extends AbstractSystemConfigLoader
  7. {
  8.     /**
  9.      * @internal
  10.      */
  11.     public function __construct(
  12.         private readonly AbstractSystemConfigLoader $decorated,
  13.         private readonly MemoizedSystemConfigStore $memoizedSystemConfigStore
  14.     ) {
  15.     }
  16.     public function getDecorated(): AbstractSystemConfigLoader
  17.     {
  18.         return $this->decorated;
  19.     }
  20.     public function load(?string $salesChannelId): array
  21.     {
  22.         $config $this->memoizedSystemConfigStore->getConfig($salesChannelId);
  23.         if ($config !== null) {
  24.             return $config;
  25.         }
  26.         $config $this->getDecorated()->load($salesChannelId);
  27.         $this->memoizedSystemConfigStore->setConfig($salesChannelId$config);
  28.         return $config;
  29.     }
  30. }