如何正确处理Symfony 4中的错误418?

时间:2018-09-17 11:27:43

标签: php http-status-codes symfony4

考虑到Symfony 4 documentation,当发生418错误(我是茶壶)时,也不会抛出异常

然后我写了一个实现Symfony\Component\HttpKernel\Exception\HttpExceptionInterface

的新异常
namespace App\Exception;

use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;

class HttpTeapotException extends \Exception implements HttpExceptionInterface
{
    public function getStatusCode()
    {
        return (418);
    }

    public function getHeaders()
    {
        $header = array();

        return ($header);
    }
}

然后是/teapot路由的控制器

namespace App\TeaPot\Controller;

use App\Exception\HttpTeapotException;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class TeaPotController extends Controller
{
    public function tea(Request $request)
    {
        throw new HttpTeapotException();
    }
}

在讨价还价/teapot时,我显然将其作为输出:

  

糟糕!发生错误

     

服务器返回“ 418我是茶壶”。

     

有些东西坏了。请让我们知道发生此错误时您正在做什么。我们将尽快修复它。不便之处,敬请谅解。

我的问题是:当服务器是茶壶时,是否有办法正确处理并抛出418,尤其是构建符合WC3(网络控制的咖啡联盟)的标头?

0 个答案:

没有答案