Estoy desarrollando una aplicación web (CakePHP), creando así clases de excepción propias.
En este momento trato de crear una excepción bloqueada, que devolverá el código de estado HTTP 423 (Bloqueado):
<?php namespace App\Exceptions; use Cake\Network\Exception\HttpException; class MeasuringPointLockedException extends HttpException{ /** * Constructor * * @param string $message If no message is given 'Locked' will be the message */ public function __construct($message = 'Locked'){ parent::__construct($message, 422); } } ?>Desafortunadamente, en algún momento mi código 423 se consume y se reemplaza por 500 (error interno del servidor). Noté que solo se reemplazan algunos códigos, otros (como 400, 404, 422) se pasan.
Nota: HttpException es una extensión de la excepción incorporada de PHP.
En el medio, noté que el código de respuesta 423 está destinado a los servicios WebDAV, pero:
¿Hay alguna documentación, qué códigos se pasan? ¿Cómo podría lograr un estado = 423 al lanzar (y no capturar) tal excepción?
Puede ver un montón de excepciones http aquí: [ https://book.cakephp.org/3/en/development/errors.html 1
Aquí también hay un buen ejemplo de cómo hacer esta implementación:
use Cake\Core\Exception\Exception; class MissingWidgetException extends Exception { // Set your message here protected $_messageTemplate = 'Your message'; // Set your status code here protected $_defaultCode = 404; } throw new MissingWidgetException(['widget' => 'Pointy']);