Index.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Framework\Controller\Noroute;
  8. class Index extends \Magento\Framework\App\Action\Action
  9. {
  10. /**
  11. * Noroute application handler
  12. *
  13. * @return void
  14. */
  15. public function execute()
  16. {
  17. $status = $this->getRequest()->getParam('__status__');
  18. if (!$status instanceof \Magento\Framework\DataObject) {
  19. $status = new \Magento\Framework\DataObject();
  20. }
  21. $this->_eventManager->dispatch('controller_action_noroute', ['action' => $this, 'status' => $status]);
  22. if ($status->getLoaded() !== true || $status->getForwarded() === true) {
  23. $this->_view->loadLayout(['default', 'noroute']);
  24. $this->_view->renderLayout();
  25. } else {
  26. $status->setForwarded(true);
  27. $request = $this->getRequest();
  28. $request->initForward();
  29. $request->setParams(['__status__' => $status]);
  30. $request->setControllerName($status->getForwardController());
  31. $request->setModuleName($status->getForwardModule());
  32. $request->setActionName($status->getForwardAction())->setDispatched(false);
  33. }
  34. }
  35. }