![]() 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-backend/Model/Menu/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Backend\Model\Menu; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @api * @since 100.0.2 */ class Config { const CACHE_ID = 'backend_menu_config'; const CACHE_MENU_OBJECT = 'backend_menu_object'; /** * @var \Magento\Framework\App\Cache\Type\Config */ protected $_configCacheType; /** * @var \Magento\Framework\Event\ManagerInterface */ protected $_eventManager; /** * @var \Magento\Backend\Model\MenuFactory */ protected $_menuFactory; /** * Menu model * * @var \Magento\Backend\Model\Menu */ protected $_menu; /** * @var \Psr\Log\LoggerInterface */ protected $_logger; /** * @var \Magento\Backend\Model\Menu\Config\Reader */ protected $_configReader; /** * @var \Magento\Framework\App\Config\ScopeConfigInterface */ protected $_scopeConfig; /** * @var \Magento\Backend\Model\Menu\AbstractDirector */ protected $_director; /** * @var \Magento\Framework\App\State */ protected $_appState; /** * @var Builder */ private $_menuBuilder; /** * @param \Magento\Backend\Model\Menu\Builder $menuBuilder * @param \Magento\Backend\Model\Menu\AbstractDirector $menuDirector * @param \Magento\Backend\Model\MenuFactory $menuFactory * @param \Magento\Backend\Model\Menu\Config\Reader $configReader * @param \Magento\Framework\App\Cache\Type\Config $configCacheType * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Framework\App\State $appState */ public function __construct( \Magento\Backend\Model\Menu\Builder $menuBuilder, \Magento\Backend\Model\Menu\AbstractDirector $menuDirector, \Magento\Backend\Model\MenuFactory $menuFactory, \Magento\Backend\Model\Menu\Config\Reader $configReader, \Magento\Framework\App\Cache\Type\Config $configCacheType, \Magento\Framework\Event\ManagerInterface $eventManager, \Psr\Log\LoggerInterface $logger, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\App\State $appState ) { $this->_menuBuilder = $menuBuilder; $this->_director = $menuDirector; $this->_configCacheType = $configCacheType; $this->_eventManager = $eventManager; $this->_logger = $logger; $this->_menuFactory = $menuFactory; $this->_configReader = $configReader; $this->_scopeConfig = $scopeConfig; $this->_appState = $appState; } /** * Build menu model from config * * @return \Magento\Backend\Model\Menu * @throws \Exception|\InvalidArgumentException * @throws \Exception * @throws \BadMethodCallException|\Exception * @throws \Exception|\OutOfRangeException */ public function getMenu() { try { $this->_initMenu(); return $this->_menu; } catch (\InvalidArgumentException $e) { $this->_logger->critical($e); throw $e; } catch (\BadMethodCallException $e) { $this->_logger->critical($e); throw $e; } catch (\OutOfRangeException $e) { $this->_logger->critical($e); throw $e; } catch (\Exception $e) { throw $e; } } /** * Initialize menu object * * @return void */ protected function _initMenu() { if (!$this->_menu) { $this->_menu = $this->_menuFactory->create(); $cache = $this->_configCacheType->load(self::CACHE_MENU_OBJECT); if ($cache) { $this->_menu->unserialize($cache); return; } $this->_director->direct( $this->_configReader->read($this->_appState->getAreaCode()), $this->_menuBuilder, $this->_logger ); $this->_menu = $this->_menuBuilder->getResult($this->_menu); $this->_configCacheType->save($this->_menu->serialize(), self::CACHE_MENU_OBJECT); } } }