from - php send http 200 ok
Lanzar una excepción 503 personalizada en CakePHP 2 (2)
http://api22.cakephp.org/class/cake-response#method-CakeResponsestatusCode
Te permitirá establecer un código de estado.
Necesito dar un encabezado HTTP 503 Service Unavailable .
Normalmente los utilizo para los códigos 404 y 500
throw new NotFoundException();
throw new InternalErrorException();
¿Pero no pude encontrar una excepción relevante para 503 en CakePHP 2.2?
En mi archivo "app / lib / AppExceptionHandler.php" tengo esta clase / función que maneja los errores.
class AppExceptionHandler {
public static function handle($error) {
}
Editar:
Dentro de la carpeta " app / Lib " creé un archivo llamado " MyExceptions.php ". Escribí el siguiente código dentro de este archivo:
class ServiceUnavailableException extends CakeException { protected $_messageTemplate = ''Service is not available now''; }
En " bootstrap.php " escribí esto:
App :: uses (''MyExceptions'', ''Lib'');
Luego, dentro del archivo " MyNewController.php " escribí esto:
lanza la nueva excepción ServiceUnavailableException ("solo intentándolo");
Pero luego aparece este error cuando arrojo esta excepción:
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]
¿Qué extraño? Gracias
Vale la pena leer la página de Excepciones en el libro de Cake 2.0 .
Aquí está mi breve prueba:
// 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);