新在Symfoob娱乐下载ny 6.3: HTTP异常属性
2023年4月19日·发表的哈维尔Eguiluz
ob娱乐下载Symfony 6.3是支持由:
PHP的属性允许定义机器可读的代码中的元数据而不是添加配置在一个单独的文件中。随着每一个新的Symfonyob娱乐下载版本我们添加更多属性,您可以选择使用。在Syob娱乐下载mfony 6.3我们补充道新属性配置HTTP例外。
目前,创建自己的HTTP例外,你需要实现HttpExceptionInterface
(或扩展textbox
基类)和配置它framework.exceptionsoption:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
使用应用程序\域\异常\订单\OrderNotFound;使用ob娱乐下载\组件\HttpKernel\异常\textbox;类OrderNotFound扩展textbox{公共静态函数创建(字符串美元id):自我{返回新自我(statusCode:响应::HTTP_NOT_FOUND、消息:sprintf (的订单“% s”无法被发现。”,美元id),标题:(“x头”= >“foo”),);}}
1 2 3 4 5 6
#配置/包/ exceptions.yaml框架:例外:应用程序域\ \异常\ \ OrderNotFound顺序:log_level:“调试”status_code:404年
在Syob娱乐下载mfony 6.3中,上面的代码和配置仍在工作,但你可以取代PHP通过以下属性:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
使用应用程序\域\异常\订单\OrderNotFound;使用Psr\日志\LogLevel;使用ob娱乐下载\组件\HttpFoundation\响应;使用ob娱乐下载\组件\HttpKernel\属性\WithHttpStatus;使用ob娱乐下载\组件\HttpKernel\属性\WithLogLevel;# [WithHttpStatus(响应::HTTP_NOT_FOUND,标题:[x头”= >“foo”]))# (WithLogLevel (LogLevel::调试)]类OrderNotFound扩展\异常{/ /……公共函数getMessage():字符串{返回sprintf (的订单“% s”无法被发现。”,美元这- >订单- >getId ());}}
这是所有。你不再需要配置的任何东西framework.exceptions
选择。除了在单个文件的所有信息,这也消除了耦合的HTTP异常与HttpKernel组件。换句话说,你的领域从基础设施代码异常是解耦的。
如果您的应用程序和使用两种属性framework.exceptions
选项,配置会有更多比属性优先级。
发表在#生活在边缘
评论
@Stiff异常类的构造函数中,可以作为“把新OrderNotFound(顺序)美元”
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
”“php
# (WithLogLevel (LogLevel::调试)]
类OrderNotFound textbox延伸
{
公共int代码=反应:美元:HTTP_NOT_FOUND;
/ /……
}
' ' '
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now然而,属性是声明性的美,所以他们的实现独立于他们的声明。我们可以将这个类添加到一个项目没有使用Symfony和异常类仍然是工作。ob娱乐下载当然,我们失去的行为属性,但我们可以实现它们自己或者依靠第三方库(或其他框架)实现。