1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <?php
- /**
- * Default no route handler
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\App\Router;
- class NoRouteHandler implements \Magento\Framework\App\Router\NoRouteHandlerInterface
- {
- /**
- * @var \Magento\Framework\App\Config\ScopeConfigInterface
- */
- protected $_config;
- /**
- * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
- */
- public function __construct(\Magento\Framework\App\Config\ScopeConfigInterface $config)
- {
- $this->_config = $config;
- }
- /**
- * Check and process no route request
- *
- * @param \Magento\Framework\App\RequestInterface $request
- * @return bool
- * @SuppressWarnings(PHPMD.NPathComplexity)
- */
- public function process(\Magento\Framework\App\RequestInterface $request)
- {
- $noRoutePath = $this->_config->getValue('web/default/no_route', 'default');
- if ($noRoutePath) {
- $noRoute = explode('/', $noRoutePath);
- } else {
- $noRoute = [];
- }
- $moduleName = isset($noRoute[0]) ? $noRoute[0] : 'core';
- $actionPath = isset($noRoute[1]) ? $noRoute[1] : 'index';
- $actionName = isset($noRoute[2]) ? $noRoute[2] : 'index';
- $request->setModuleName($moduleName)->setControllerName($actionPath)->setActionName($actionName);
- return true;
- }
- }
|