![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-store/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Store\Model; use Magento\Framework\App\ObjectManager; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Framework\App\Config; /** * Information Expert in store groups handling * * @package Magento\Store\Model */ class GroupRepository implements \Magento\Store\Api\GroupRepositoryInterface { /** * @var GroupFactory */ protected $groupFactory; /** * @var \Magento\Store\Api\Data\GroupInterface[] */ protected $entities = []; /** * @var bool */ protected $allLoaded = false; /** * @var \Magento\Store\Model\ResourceModel\Group\CollectionFactory */ protected $groupCollectionFactory; /** * @var Config */ private $appConfig; /** * @param GroupFactory $groupFactory * @param \Magento\Store\Model\ResourceModel\Group\CollectionFactory $groupCollectionFactory */ public function __construct( GroupFactory $groupFactory, \Magento\Store\Model\ResourceModel\Group\CollectionFactory $groupCollectionFactory ) { $this->groupFactory = $groupFactory; $this->groupCollectionFactory = $groupCollectionFactory; } /** * {@inheritdoc} */ public function get($id) { if (isset($this->entities[$id])) { return $this->entities[$id]; } $group = $this->groupFactory->create([ 'data' => $this->getAppConfig()->get('scopes', "groups/$id", []) ]); if (null === $group->getId()) { throw new NoSuchEntityException(); } $this->entities[$id] = $group; return $group; } /** * {@inheritdoc} */ public function getList() { if (!$this->allLoaded) { $groups = $this->getAppConfig()->get('scopes', 'groups', []); foreach ($groups as $data) { $group = $this->groupFactory->create([ 'data' => $data ]); $this->entities[$group->getId()] = $group; } $this->allLoaded = true; } return $this->entities; } /** * {@inheritdoc} */ public function clean() { $this->entities = []; $this->allLoaded = false; } /** * Retrieve application config. * * @deprecated 100.1.3 * @return Config */ private function getAppConfig() { if (!$this->appConfig) { $this->appConfig = ObjectManager::getInstance()->get(Config::class); } return $this->appConfig; } }