本文整理汇总了PHP中ApplicationException::getCode方法的典型用法代码示例。如果您正苦于以下问题:PHP ApplicationException::getCode方法的具体用法?PHP ApplicationException::getCode怎么用?PHP ApplicationException::getCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ApplicationException
的用法示例。
在下文中一共展示了ApplicationException::getCode方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
/**
* Dispatch a HTTP request to a front controller.
* @return void
*/
public function run()
{
$httpRequest = $this->context->httpRequest;
$httpResponse = $this->context->httpResponse;
// check HTTP method
if ($this->allowedMethods) {
$method = $httpRequest->getMethod();
if (!in_array($method, $this->allowedMethods, TRUE)) {
$httpResponse->setCode(Nette\Http\IResponse::S501_NOT_IMPLEMENTED);
$httpResponse->setHeader('Allow', implode(',', $this->allowedMethods));
echo '<h1>Method ' . htmlSpecialChars($method) . ' is not implemented</h1>';
return;
}
}
// dispatching
$request = NULL;
$repeatedError = FALSE;
do {
try {
if (count($this->requests) > self::$maxLoop) {
throw new ApplicationException('Too many loops detected in application life cycle.');
}
if (!$request) {
$this->onStartup($this);
// routing
$router = $this->getRouter();
// enable routing debugger
Diagnostics\RoutingPanel::initialize($this, $httpRequest);
$request = $router->match($httpRequest);
if (!$request instanceof Request) {
$request = NULL;
throw new BadRequestException('No route for HTTP request.');
}
if (strcasecmp($request->getPresenterName(), $this->errorPresenter) === 0) {
throw new BadRequestException('Invalid request. Presenter is not achievable.');
}
}
$this->requests[] = $request;
$this->onRequest($this, $request);
// Instantiate presenter
$presenterName = $request->getPresenterName();
try {
$this->presenter = $this->getPresenterFactory()->createPresenter($presenterName);
} catch (InvalidPresenterException $e) {
throw new BadRequestException($e->getMessage(), 404, $e);
}
$this->getPresenterFactory()->getPresenterClass($presenterName);
$request->setPresenterName($presenterName);
$request->freeze();
// Execute presenter
$response = $this->presenter->run($request);
$this->onResponse($this, $response);
// Send response
if ($response instanceof Responses\ForwardResponse) {
$request = $response->getRequest();
continue;
} elseif ($response instanceof IResponse) {
$response->send($httpRequest, $httpResponse);
}
break;
} catch (\Exception $e) {
// fault barrier
$this->onError($this, $e);
if (!$this->catchExceptions) {
$this->onShutdown($this, $e);
throw $e;
}
if ($repeatedError) {
$e = new ApplicationException('An error occurred while executing error-presenter', 0, $e);
}
if (!$httpResponse->isSent()) {
$httpResponse->setCode($e instanceof BadRequestException ? $e->getCode() : 500);
}
if (!$repeatedError && $this->errorPresenter) {
$repeatedError = TRUE;
if ($this->presenter instanceof UI\Presenter) {
try {
$this->presenter->forward(":{$this->errorPresenter}:", array('exception' => $e));
} catch (AbortException $foo) {
$request = $this->presenter->getLastCreatedRequest();
}
} else {
$request = new Request($this->errorPresenter, Request::FORWARD, array('exception' => $e));
}
// continue
} else {
// default error handler
if ($e instanceof BadRequestException) {
$code = $e->getCode();
} else {
$code = 500;
Nette\Diagnostics\Debugger::log($e, Nette\Diagnostics\Debugger::ERROR);
}
require __DIR__ . '/templates/error.phtml';
break;
}
//.........这里部分代码省略.........
示例2: run
/**
* Dispatch a HTTP request to a front controller.
*
* @return void
*/
public function run()
{
$request = null;
$repeatedError = false;
do {
try {
if (count($this->requests) > self::$maxLoop) {
throw new ApplicationException('Too many loops detected in application life cycle.');
}
if (!$request) {
$this->onStartup($this);
$request = $this->router->match($this->httpRequest);
if (!$request instanceof Request) {
$request = null;
throw new BadRequestException('No route for HTTP request.');
}
if (strcasecmp($request->getPresenterName(), $this->errorPresenter) === 0) {
throw new BadRequestException('Invalid request. Presenter is not achievable.');
}
}
$this->requests[] = $request;
$this->onRequest($this, $request);
// Instantiate presenter
$presenterName = $request->getPresenterName();
try {
$this->presenter = $this->presenterFactory->createPresenter($presenterName);
} catch (InvalidPresenterException $e) {
throw new BadRequestException($e->getMessage(), 404, $e);
}
$this->presenterFactory->getPresenterClass($presenterName);
$request->setPresenterName($presenterName);
$request->freeze();
// Execute presenter
$response = $this->presenter->run($request);
if ($response) {
$this->onResponse($this, $response);
}
// Send response
if ($response instanceof Responses\ForwardResponse) {
$request = $response->getRequest();
continue;
} elseif ($response instanceof IResponse) {
$response->send($this->httpRequest, $this->httpResponse);
}
break;
} catch (\Exception $e) {
// fault barrier
$this->onError($this, $e);
if (!$this->catchExceptions) {
$this->onShutdown($this, $e);
throw $e;
}
if ($repeatedError) {
$e = new ApplicationException('An error occurred while executing error-presenter', 0, $e);
}
if (!$this->httpResponse->isSent()) {
$this->httpResponse->setCode($e instanceof BadRequestException ? $e->getCode() : 500);
}
if (!$repeatedError && $this->errorPresenter) {
$repeatedError = true;
if ($this->presenter instanceof UI\Presenter) {
try {
$this->presenter->forward(":{$this->errorPresenter}:", array('exception' => $e));
} catch (AbortException $foo) {
$request = $this->presenter->getLastCreatedRequest();
}
} else {
$request = new Request($this->errorPresenter, Request::FORWARD, array('exception' => $e));
}
// continue
} else {
// default error handler
if ($e instanceof BadRequestException) {
$code = $e->getCode();
} else {
$code = 500;
Nette\Diagnostics\Debugger::log($e, Nette\Diagnostics\Debugger::ERROR);
}
require __DIR__ . '/templates/error.phtml';
break;
}
}
} while (1);
$this->onShutdown($this, isset($e) ? $e : null);
}
示例3: run
/**
* Dispatch a HTTP request to a front controller.
* @return void
*/
public function run()
{
$httpRequest = $this->getHttpRequest();
$httpResponse = $this->getHttpResponse();
// check HTTP method
if ($this->allowedMethods) {
$method = $httpRequest->getMethod();
if (!in_array($method, $this->allowedMethods, TRUE)) {
$httpResponse->setCode(Nette\Web\IHttpResponse::S501_NOT_IMPLEMENTED);
$httpResponse->setHeader('Allow', implode(',', $this->allowedMethods));
echo '<h1>Method ' . htmlSpecialChars($method) . ' is not implemented</h1>';
return;
}
}
// dispatching
$request = NULL;
$repeatedError = FALSE;
do {
try {
if (count($this->requests) > self::$maxLoop) {
throw new ApplicationException('Too many loops detected in application life cycle.');
}
if (!$request) {
$this->onStartup($this);
// autostarts session
$session = $this->getSession();
if (!$session->isStarted() && $session->exists()) {
$session->start();
}
// routing
$router = $this->getRouter();
// enable routing debuggger
Nette\Debug::addPanel(new RoutingDebugger($router, $httpRequest));
$request = $router->match($httpRequest);
if (!$request instanceof PresenterRequest) {
$request = NULL;
throw new BadRequestException('No route for HTTP request.');
}
if (strcasecmp($request->getPresenterName(), $this->errorPresenter) === 0) {
throw new BadRequestException('Invalid request. Presenter is not achievable.');
}
}
$this->requests[] = $request;
$this->onRequest($this, $request);
// Instantiate presenter
$presenter = $request->getPresenterName();
try {
$class = $this->getPresenterLoader()->getPresenterClass($presenter);
$request->setPresenterName($presenter);
} catch (InvalidPresenterException $e) {
throw new BadRequestException($e->getMessage(), 404, $e);
}
$request->freeze();
// Execute presenter
$this->presenter = new $class;
$response = $this->presenter->run($request);
$this->onResponse($this, $response);
// Send response
if ($response instanceof ForwardingResponse) {
$request = $response->getRequest();
continue;
} elseif ($response instanceof IPresenterResponse) {
$response->send();
}
break;
} catch (\Exception $e) {
// fault barrier
$this->onError($this, $e);
if (!$this->catchExceptions) {
$this->onShutdown($this, $e);
throw $e;
}
if ($repeatedError) {
$e = new ApplicationException('An error occured while executing error-presenter', 0, $e);
}
if (!$httpResponse->isSent()) {
$httpResponse->setCode($e instanceof BadRequestException ? $e->getCode() : 500);
}
//.........这里部分代码省略.........
示例4: run
/**
* Dispatch a HTTP request to a front controller.
* @return void
*/
public function run()
{
$httpRequest = $this->getHttpRequest();
$httpResponse = $this->getHttpResponse();
$httpRequest->setEncoding('UTF-8');
$httpResponse->setHeader('X-Powered-By', 'Nette Framework');
if (Environment::getVariable('baseUri') === NULL) {
Environment::setVariable('baseUri', $httpRequest->getUri()->getBasePath());
}
// autostarts session
$session = $this->getSession();
if (!$session->isStarted() && $session->exists()) {
$session->start();
}
// check HTTP method
if ($this->allowedMethods) {
$method = $httpRequest->getMethod();
if (!in_array($method, $this->allowedMethods, TRUE)) {
$httpResponse->setCode(IHttpResponse::S501_NOT_IMPLEMENTED);
$httpResponse->setHeader('Allow', implode(',', $this->allowedMethods));
echo '<h1>Method ' . htmlSpecialChars($method) . ' is not implemented</h1>';
return;
}
}
// dispatching
$request = NULL;
$repeatedError = FALSE;
do {
try {
if (count($this->requests) > self::$maxLoop) {
throw new ApplicationException('Too many loops detected in application life cycle.');
}
if (!$request) {
$this->onStartup($this);
// default router
$router = $this->getRouter();
if ($router instanceof MultiRouter && !count($router)) {
$router[] = new SimpleRouter(array('presenter' => 'Default', 'action' => 'default'));
}
// routing
$request = $router->match($httpRequest);
if (!$request instanceof PresenterRequest) {
$request = NULL;
throw new BadRequestException('No route for HTTP request.');
}
if (strcasecmp($request->getPresenterName(), $this->errorPresenter) === 0) {
throw new BadRequestException('Invalid request.');
}
}
$this->requests[] = $request;
$this->onRequest($this, $request);
// Instantiate presenter
$presenter = $request->getPresenterName();
try {
$class = $this->getPresenterLoader()->getPresenterClass($presenter);
$request->setPresenterName($presenter);
} catch (InvalidPresenterException $e) {
throw new BadRequestException($e->getMessage(), 404, $e);
}
$request->freeze();
// Execute presenter
$this->presenter = new $class();
$response = $this->presenter->run($request);
// Send response
if ($response instanceof ForwardingResponse) {
$request = $response->getRequest();
continue;
} elseif ($response instanceof IPresenterResponse) {
$response->send();
}
break;
} catch (Exception $e) {
// fault barrier
if ($this->catchExceptions === NULL) {
$this->catchExceptions = Environment::isProduction();
}
$this->onError($this, $e);
if (!$this->catchExceptions) {
$this->onShutdown($this, $e);
throw $e;
}
if ($repeatedError) {
$e = new ApplicationException('An error occured while executing error-presenter', 0, $e);
}
if (!$httpResponse->isSent()) {
$httpResponse->setCode($e instanceof BadRequestException ? $e->getCode() : 500);
}
if (!$repeatedError && $this->errorPresenter) {
$repeatedError = TRUE;
$request = new PresenterRequest($this->errorPresenter, PresenterRequest::FORWARD, array('exception' => $e));
// continue
} else {
// default error handler
echo "<meta name='robots' content='noindex'>\n\n";
if ($e instanceof BadRequestException) {
echo "<title>404 Not Found</title>\n\n<h1>Not Found</h1>\n\n<p>The requested URL was not found on this server.</p>";
//.........这里部分代码省略.........
示例5: run
/**
* Dispatch a HTTP request to a front controller.
*/
public function run()
{
$httpRequest = $this->getHttpRequest();
$httpResponse = $this->getHttpResponse();
$httpRequest->setEncoding('UTF-8');
$httpResponse->setHeader('X-Powered-By', 'Nette Framework');
if (Environment::getVariable('baseUri') === NULL) {
Environment::setVariable('baseUri', $httpRequest->getUri()->basePath);
}
// check HTTP method
$method = $httpRequest->getMethod();
if ($this->allowedMethods) {
if (!in_array($method, $this->allowedMethods, TRUE)) {
$httpResponse->setCode(IHttpResponse::S501_NOT_IMPLEMENTED);
$httpResponse->setHeader('Allow', implode(',', $this->allowedMethods));
$method = htmlSpecialChars($method);
die("<h1>Method {$method} is not implemented</h1>");
}
}
// dispatching
$request = NULL;
$hasError = FALSE;
do {
try {
if (count($this->requests) > self::$maxLoop) {
throw new ApplicationException('Too many loops detected in application life cycle.');
}
if (!$request) {
$this->onStartup($this);
// default router
$router = $this->getRouter();
if ($router instanceof MultiRouter && !count($router)) {
$router[] = new SimpleRouter(array('presenter' => 'Default', 'action' => 'default'));
}
// routing
$request = $router->match($httpRequest);
if (!$request instanceof PresenterRequest) {
$request = NULL;
throw new BadRequestException('No route for HTTP request.');
}
if (strcasecmp($request->getPresenterName(), $this->errorPresenter) === 0) {
throw new BadRequestException('Invalid request.');
}
}
$this->requests[] = $request;
$this->onRequest($this, $request);
// Instantiate presenter
$presenter = $request->getPresenterName();
try {
$class = $this->getPresenterLoader()->getPresenterClass($presenter);
$request->modify('name', $presenter);
} catch (InvalidPresenterException $e) {
throw new BadRequestException($e->getMessage(), 404, $e);
}
$this->presenter = new $class($request);
// Instantiate topmost service locator
$this->presenter->setServiceLocator(new ServiceLocator($this->serviceLocator));
// Execute presenter
$this->presenter->run();
break;
} catch (RedirectingException $e) {
// not error, presenter redirects to new URL
$httpResponse->redirect($e->getUri(), $e->getCode());
break;
} catch (ForwardingException $e) {
// not error, presenter forwards to new request
$request = $e->getRequest();
} catch (AbortException $e) {
// not error, application is correctly terminated
unset($e);
break;
} catch (Exception $e) {
// fault barrier
if ($this->catchExceptions === NULL) {
$this->catchExceptions = Environment::isProduction();
}
if (!$this->catchExceptions) {
throw $e;
}
$this->onError($this, $e);
if ($hasError) {
$e = new ApplicationException('An error occured while executing error-presenter', 0, $e);
} elseif ($this->errorPresenter) {
$hasError = TRUE;
$request = new PresenterRequest($this->errorPresenter, PresenterRequest::FORWARD, array('exception' => $e));
continue;
}
if ($e instanceof BadRequestException) {
if (!$httpResponse->isSent()) {
$httpResponse->setCode($e->getCode());
}
echo "<title>404 Not Found</title>\n\n<h1>Not Found</h1>\n\n<p>The requested URL was not found on this server.</p>";
break;
} else {
if (!$httpResponse->isSent()) {
$httpResponse->setCode(500);
}
//.........这里部分代码省略.........