headers from code php cakephp exception-handling cakephp-2.0 http-status-code-503

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);