1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <?php
- /**
- * Resolves file/directory paths to modules they belong to
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Module\Dir;
- use Magento\Framework\Module\Dir;
- use Magento\Framework\Module\ModuleListInterface;
- class ReverseResolver
- {
- /**
- * @var ModuleListInterface
- */
- protected $_moduleList;
- /**
- * @var Dir
- */
- protected $_moduleDirs;
- /**
- * @param ModuleListInterface $moduleList
- * @param Dir $moduleDirs
- */
- public function __construct(ModuleListInterface $moduleList, Dir $moduleDirs)
- {
- $this->_moduleList = $moduleList;
- $this->_moduleDirs = $moduleDirs;
- }
- /**
- * Retrieve fully-qualified module name, path belongs to
- *
- * @param string $path Full path to file or directory
- * @return string|null
- */
- public function getModuleName($path)
- {
- $path = str_replace('\\', '/', $path);
- foreach ($this->_moduleList->getNames() as $moduleName) {
- $moduleDir = $this->_moduleDirs->getDir($moduleName);
- $moduleDir = str_replace('\\', '/', $moduleDir);
- if ($path == $moduleDir || strpos($path, $moduleDir . '/') === 0) {
- return $moduleName;
- }
- }
- return null;
- }
- }
|