Мне нужно предоставить HTTP-заголовок 503 Service Unavailable .
Обычно я использую их для 404 и 500 кодов
throw new NotFoundException(); throw new InternalErrorException();
Но я не могу найти соответствующее исключение для 503 в CakePHP 2.2?
В моем файле «app / lib / AppExceptionHandler.php» у меня есть этот класс / функция, которая обрабатывает ошибки.
class AppExceptionHandler { public static function handle($error) { }
Редактировать:
В папке « app / Lib » я создал файл с именем « MyExceptions.php ». Я написал следующий код внутри этого файла:
class ServiceUnavailableException extends CakeException { protected $_messageTemplate = 'Service is not available now'; }
В « bootstrap.php » я написал следующее:
App :: uses ('MyExceptions', 'Lib');
Затем в файле « MyNewController.php » я написал следующее:
throw new ServiceUnavailableException («просто пытается»);
Но тогда я получаю эту ошибку, когда бросаю это исключение:
Fatal error: Class 'ServiceUnavailableException' not found in /var/www/vhosts/example.com/httpdocs/app/Controller/MyNewController.php on line 3560 Warning (2): Cannot modify header information - headers already sent by (output started at /var/www/vhosts/example.com/httpdocs/app/Controller/MyNewController.php:3560) [APP/Lib/AppExceptionHandler.php, line 19]
Что мне не хватает? спасибо
Страница Исключения в книге Cake 2.0 стоит прочитать.
Вот мой короткий тест:
// in bootstrap.php require(APP . 'Lib' . DS . 'MyExceptions.php'); // in /Lib/MyExceptions.php class ServiceUnavailableException extends CakeException { protected $_messageTemplate = 'Test'; } // in controller throw new ServiceUnavailableException('Service unavailable', 503);
http://api22.cakephp.org/class/cake-response#method-CakeResponsestatusCode
Позволяет вам установить код состояния.