Laravel 5.8 缓存 TTL 即将变更
发布时间 作者 Paul Redmond
从 Laravel 5.8 开始,将整数传递给缓存驱动程序时使用的生存时间 (TTL) 将以 **秒** 而不是 **分钟** 为单位。以秒为单位缓存让用户可以更精细地控制缓存持续时间,并将符合 PSR-16。
项目的生存时间 (TTL) 是指从存储项目开始到该项目被视为过时的时间。TTL 通常由表示以秒为单位的时间的整数或 DateInterval 对象定义。
从 Laravel 5.0 到当前稳定的 Laravel 5.7,当您将整数传递给缓存存储操作(如 put()
和 remember()
)时,持续时间以分钟为单位表示。
Cache::remember('active-posts', 5, function () { return Post::active()->get();});
为了简化您从早期版本(5.5 或更高版本)到 Laravel 5.8 的升级路径,您也可以将 DateTimeInterface
或 DateInterval
传递给 Cache::put()
。使用 DateTime 或 Interval 是您现在可以做的事情,无需查找/替换并将所有内容转换为秒,并且可能额外地使您的缓存时间更清晰。
Cache::remember('active-posts', \DateInterval::createFromDateString('5 minutes'), function () { return Post::active()->get();});
以下是一个使用 Carbon 的 addMinutes()
的示例
Cache::remember('active-posts', now()->addMinutes(5), function () { return Post::active()->get();});