当前位置: 首页>>代码示例>>PHP>>正文


PHP XenForo_Error::noControllerResponse方法代码示例

本文整理汇总了PHP中XenForo_Error::noControllerResponse方法的典型用法代码示例。如果您正苦于以下问题:PHP XenForo_Error::noControllerResponse方法的具体用法?PHP XenForo_Error::noControllerResponse怎么用?PHP XenForo_Error::noControllerResponse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在XenForo_Error的用法示例。


在下文中一共展示了XenForo_Error::noControllerResponse方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: run

 /**
  * Runs the request, handling from routing straight through to response output.
  * Primary method to be used by the external API.
  *
  * @return string|null Returns a string if {@link $_sendResponse} is false
  */
 public function run()
 {
     ob_start();
     XenForo_Application::set('fc', $this);
     $this->setup();
     $this->setRequestPaths();
     $showDebugOutput = $this->showDebugOutput();
     $this->_dependencies->preLoadData();
     XenForo_CodeEvent::fire('front_controller_pre_route', array($this));
     $routeMatch = $this->route();
     XenForo_CodeEvent::fire('front_controller_pre_dispatch', array($this, &$routeMatch));
     $controllerResponse = $this->dispatch($routeMatch);
     if (!$controllerResponse) {
         XenForo_Error::noControllerResponse($routeMatch, $this->_request);
         exit;
     }
     $viewRenderer = $this->_getViewRenderer($routeMatch->getResponseType());
     if (!$viewRenderer) {
         // note: should only happen if there's an error getting the default renderer, which should never happen :)
         XenForo_Error::noViewRenderer($this->_request);
         exit;
     }
     $containerParams = array('majorSection' => $routeMatch->getMajorSection(), 'minorSection' => $routeMatch->getMinorSection());
     XenForo_CodeEvent::fire('front_controller_pre_view', array($this, &$controllerResponse, &$viewRenderer, &$containerParams));
     $content = $this->renderView($controllerResponse, $viewRenderer, $containerParams);
     if ($showDebugOutput) {
         $content = $this->renderDebugOutput($content);
     }
     $bufferedContents = ob_get_contents();
     ob_end_clean();
     if ($bufferedContents !== '' && is_string($content)) {
         if (preg_match('#<body[^>]*>#sU', $content, $match)) {
             $content = str_replace($match[0], $match[0] . $bufferedContents, $content);
         } else {
             $content = $bufferedContents . $content;
         }
     }
     XenForo_CodeEvent::fire('front_controller_post_view', array($this, &$content));
     if ($this->_sendResponse) {
         $headers = $this->_response->getHeaders();
         $isText = false;
         foreach ($headers as $header) {
             if ($header['name'] == 'Content-Type') {
                 if (strpos($header['value'], 'text/') === 0) {
                     $isText = true;
                 }
                 break;
             }
         }
         if ($isText && is_string($content) && $content) {
             $extraHeaders = XenForo_Application::gzipContentIfSupported($content);
             foreach ($extraHeaders as $extraHeader) {
                 $this->_response->setHeader($extraHeader[0], $extraHeader[1], $extraHeader[2]);
             }
         }
         if (is_string($content) && $content && !ob_get_level() && XenForo_Application::get('config')->enableContentLength) {
             if ($this->_response->getHttpResponseCode() >= 400 && strpos($this->_request->getServer('HTTP_USER_AGENT', ''), 'IEMobile') !== false) {
                 // Windows mobile bug - 400+ errors cause the standard browser error
                 // to be output if a content length is sent. ...Err, what?
             } else {
                 $this->_response->setHeader('Content-Length', strlen($content), true);
             }
         }
         $this->_response->sendHeaders();
         if ($content instanceof XenForo_FileOutput) {
             $content->output();
         } else {
             echo $content;
         }
     } else {
         return $content;
     }
 }
开发者ID:VoDongMy,项目名称:xenforo-laravel5.1,代码行数:79,代码来源:FrontController.php

示例2: run

 /**
  * Runs the request, handling from routing straight through to response output.
  * Primary method to be used by the external API.
  *
  * @return string|null Returns a string if {@link $_sendResponse} is false
  */
 public function run($innerContent = "", $newParams = array())
 {
     ob_start();
     $this->setup();
     $this->setRequestPaths();
     $showDebugOutput = $this->showDebugOutput();
     $this->_dependencies->preLoadData();
     XenForo_CodeEvent::fire('front_controller_pre_route', array($this));
     $routeMatch = $this->route();
     XenForo_CodeEvent::fire('front_controller_pre_dispatch', array($this, &$routeMatch));
     $controllerResponse = $this->dispatch($routeMatch);
     if (!$controllerResponse) {
         XenForo_Error::noControllerResponse($routeMatch, $this->_request);
         exit;
     }
     $viewRenderer = $this->_getViewRenderer($routeMatch->getResponseType());
     if (!$viewRenderer) {
         // note: should only happen if there's an error getting the default renderer, which should never happen :)
         XenForo_Error::noViewRenderer($this->_request);
         exit;
     }
     $containerParams = array('majorSection' => $routeMatch->getMajorSection(), 'minorSection' => $routeMatch->getMinorSection());
     XenForo_CodeEvent::fire('front_controller_pre_view', array($this, &$controllerResponse, &$viewRenderer, &$containerParams));
     $content = $this->renderView($controllerResponse, $viewRenderer, $containerParams, $innerContent, $newParams);
     if ($showDebugOutput) {
         $content = $this->renderDebugOutput($content);
     }
     $bufferedContents = ob_get_contents();
     ob_end_clean();
     if ($bufferedContents !== '') {
         $content = $bufferedContents . $content;
     }
     XenForo_CodeEvent::fire('front_controller_post_view', array($this, &$content));
     if ($this->_sendResponse) {
         $headers = $this->_response->getHeaders();
         $isText = false;
         foreach ($headers as $header) {
             if ($header['name'] == 'Content-Type') {
                 if (strpos($header['value'], 'text/') === 0) {
                     $isText = true;
                 }
                 break;
             }
         }
         if ($isText && is_string($content) && $content) {
             $extraHeaders = XenForo_Application::gzipContentIfSupported($content);
             foreach ($extraHeaders as $extraHeader) {
                 $this->_response->setHeader($extraHeader[0], $extraHeader[1], $extraHeader[2]);
             }
         }
         if (is_string($content) && $content && !ob_get_level() && XenForo_Application::get('config')->enableContentLength) {
             $this->_response->setHeader('Content-Length', strlen($content), true);
         }
         $this->_response->sendHeaders();
         if ($content instanceof XenForo_FileOutput) {
             $content->output();
         } else {
             //$uncompressed = gzuncompress($content);
             //echo $uncompressed;
             echo $content;
         }
     } else {
         return $content;
     }
 }
开发者ID:Troposphir,项目名称:troposphir,代码行数:71,代码来源:XenForo_FrontC.php


注:本文中的XenForo_Error::noControllerResponse方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。