예제 #1
0
 /**
  * Finds requested resource and provides it to the client
  *
  * @return \Magento\Framework\App\ResponseInterface
  * @throws \Exception
  */
 public function launch()
 {
     $appMode = $this->state->getMode();
     if ($appMode == \Magento\Framework\App\State::MODE_PRODUCTION) {
         $this->response->setHttpResponseCode(404);
     } else {
         try {
             $path = $this->request->get('resource');
             $params = $this->parsePath($path);
             $this->state->setAreaCode($params['area']);
             $this->objectManager->configure($this->configLoader->load($params['area']));
             $file = $params['file'];
             unset($params['file']);
             $asset = $this->assetRepo->createAsset($file, $params);
             $this->response->setFilePath($asset->getSourceFile());
             $this->publisher->publish($asset);
         } catch (\Exception $e) {
             if ($appMode == \Magento\Framework\App\State::MODE_DEVELOPER) {
                 throw $e;
             }
             $this->response->setHttpResponseCode(404);
         }
     }
     return $this->response;
 }
예제 #2
0
 /**
  * {@inheritdoc}
  */
 public function catchException(Bootstrap $bootstrap, \Exception $exception)
 {
     $this->response->setHttpResponseCode(404);
     $this->response->setHeader('Content-Type', 'text/plain');
     if ($bootstrap->isDeveloperMode()) {
         $this->response->setBody($exception->getMessage() . "\n" . $exception->getTraceAsString());
     }
     $this->response->sendResponse();
     return true;
 }
예제 #3
0
 /**
  * {@inheritdoc}
  */
 public function catchException(Bootstrap $bootstrap, \Exception $exception)
 {
     if ($bootstrap->isDeveloperMode()) {
         $this->response->setHttpResponseCode(404);
         $this->response->setHeader('Content-Type', 'text/plain');
         $this->response->setBody($exception->getMessage() . "\n" . $exception->getTraceAsString());
         $this->response->sendResponse();
     } else {
         require $this->getFilesystem()->getDirectoryRead(DirectoryList::PUB)->getAbsolutePath('errors/404.php');
     }
     return true;
 }