/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/Module/ModuleList.php
162 строки
4 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2014 Adobe * All Rights Reserved. */ namespace Magento\Framework\Module; use Magento\Framework\App\DeploymentConfig; use Magento\Framework\Config\ConfigOptionsListConstants; /** * A list of modules in the Magento application * * Encapsulates information about whether modules are enabled or not. * Represents only enabled modules through its interface */ class ModuleList implements ModuleListInterface { /** * Deployment configuration * * @var DeploymentConfig */ private $config; /** * Loader of module information from source code * * @var ModuleList\Loader */ private $loader; /** * An associative array of modules * * The possible values are 1 (enabled) or 0 (disabled) * * @var int[] */ private $configData; /** * Enumeration of the enabled module names * * @var string[] */ private $enabled; /** * Constructor * * @param DeploymentConfig $config * @param ModuleList\Loader $loader */ public function __construct(DeploymentConfig $config, ModuleList\Loader $loader) { $this->config = $config; $this->loader = $loader; } /** * @inheritdoc * * Note that this triggers loading definitions of all existing modules in the system. * Use this method only when you actually need modules' declared meta-information. * * @see getNames() */ public function getAll() { if (null === $this->enabled) { $all = $this->loader->load(); if (empty($all)) { return []; // don't record erroneous value into memory } $this->enabled = []; foreach ($all as $key => $value) { if ($this->has($key)) { $this->enabled[$key] = $value; } } } return $this->enabled; } /** * @inheritdoc */ public function getOne($name) { $enabled = $this->getAll(); return $enabled[$name] ?? null; } /** * @inheritdoc */ public function getNames() { $this->loadConfigData(); if (!$this->configData) { return []; } $result = array_keys(array_filter($this->configData)); return $result; } /** * @inheritdoc */ public function has($name) { $this->loadConfigData(); if (!$this->configData) { return false; } return !empty($this->configData[$name]); } /** * Checks if module list information is available. * * @return bool */ public function isModuleInfoAvailable() { $this->loadConfigData(); if ($this->configData) { return true; } return false; } /** * Loads configuration data only * * @return void * @throws \Magento\Framework\Exception\FileSystemException * @throws \Magento\Framework\Exception\RuntimeException */ private function loadConfigData() { if (null === $this->configData) { $config = $this->config->get(ConfigOptionsListConstants::KEY_MODULES); if (null !== $config) { $this->configData = $config; } } } /** * Disable show internals with var_dump * * @see https://www.php.net/manual/en/language.oop5.magic.php#object.debuginfo * * @return array|null */ public function __debugInfo(): ?array { return []; } }