Laravel 10.25 发布

Laravel

本周,Laravel团队发布了v10.25版本,其中包括异常节流、Str::take()方法等更新。这周Laravel收到了很多社区的修复、更新和纠错,这总是非常让人感激!

异常限流

Tim MacDonald 贡献了异常节流的能力,通过采样/限制异常报告来限制异常。您的异常Handler类可以定义一个throttle()方法,这个方法让您可以根据异常类型进行速率限制,从而实现更灵活的控制。

// App\Exceptions\Handler
use App\Exceptions\ApiMonitoringException;
use Illuminate\Broadcasting\BroadcastException;
use Illuminate\Cache\RateLimiting\Limit;
use Throwable;

/**
 * Throttle incoming exceptions.
 */
protected function throttle(Throwable $e): mixed
{
    return match (true) {
        $e instanceof BroadcastException => Limit::perMinute(300),
        $e instanceof ApiMonitoringException => Lottery::odds(1, 1000),
        default => Limit::none(),
    };
}

请注意,您可以返回一个Limit对象,用于限制日志的数量(例如,每分钟限制),或者返回一个Lottery实例,或者如果您想要针对特定的异常类型选择退出,则可以不返回任何内容。

请查阅异常报告限流的文档,开始在Laravel 10.25中使用异常节流功能。

字符串 take() 方法

Moshe BrodskyStrStringable类贡献了一个take()方法。这个方法是substr()的语法糖,当你想从字符串的第一个字符开始截取时,它会更方便使用。

// Before
str('abcdef')->substr(0, 2) // 'ab'
Str::substr('abcdef', 0, 2); // 'ab'

// After
str('abcdef')->take(2) // 'ab'
Str::take('abcdef', 2); // 'ab'

你还可以使用负数从字符串末尾取字符:

Laravel

将bcrypt的轮数增加到12

Stephen Rees-Carter 贡献了将bcrypt的轮数从10增加到12的修改:

PHP正在增加默认的bcrypt成本,增加到11或12,以跟上计算能力的提升,因此我们在Laravel中也应该做同样的调整。目前的默认值10是在11年前的PHP中设置的,现在已经不再适合作为默认值。

12似乎是性能和安全之间的最佳平衡点,这已经得到Hashcat团队成员的确认。Symfony使用的成本是13,但对于某些服务器来说,这可能过高。

请查看Pull Request #48494以获取有关此更改的进一步详细信息。

发布说明

您可以在下面看到完整的新功能和更新列表,以及GitHub上10.24.0与10.25.0之间的差异。以下发布说明直接来自changelog

v10.25.0

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-10-25-0

译文地址:https://learnku.com/laravel/t/84318

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

跟不上,我真的跟不上~

5个月前 评论

快进到 Laravel 22,让「PHP 是世界上最好的语言」成为令人更加信服的标语。

Laravel 写起来优雅、功能多、快速、无负担。

只有你没有想过的,没有做不到的。

让 Laravel 带你扬风起航吧。

5个月前 评论

一直使用的只是一些基本功能~ :joy:

5个月前 评论

更新好快,跟不上~

5个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!