Laravel 11.5 中的匿名事件广播
发布时间 作者 Paul Redmond
本周,Laravel 团队发布了 v11.5,包括匿名事件广播、Blade 性能改进、使用查询参数生成 URL 等等。
匿名事件广播
Joe Dixon 为 Laravel 中使用 Laravel Echo 的实时应用程序贡献了匿名广播功能
有时您可能希望广播一个临时事件。
临时事件是在您不需要在应用程序中的任何其他地方将其挂钩的情况下发生的事件。您只想通知前端某件事。
为此,您不想费心创建一个全新的事件,您只想发送一条消息。
为此,我们可以使用 Broadcast 门面的匿名广播,这可以像这样简单:
Broadcast::on('my-channel')->send(); // You may dispatch to multiple channels at the same time:Broadcast::on([ 'my-channel', new PrivateChannel('my-channel'), 'presence-my-channel')->send(); // Broadcast the anonymous event on a private or presence channelBroadcast::private('my-channel')->send();Broadcast::presence('my-channel')->send();
要详细了解 Laravel 中的匿名事件广播,请查看 Laravel 文档。
Blade 性能改进
Taylor Otwell 分享了他的想法 关于如何超级增强 Blade 组件渲染性能。两个 pull request 被接受并合并到 Laravel 11.5 中,它们共同提高了 Blade 渲染速度 20%
使用查询参数生成 URL 的能力
Steve Bauman 贡献了使用新的 query()
方法通过查询参数生成 URL 的能力
// http://localhost/products?sort=-nameurl()->query('products', ['sort' => '-name']); // http://localhost/products?columns[0]=name&columns[1]=price&columns[2]=quantityurl()->query('products', ['columns' => ['name', 'price', 'quantity']]); // Overiding parameters:// http://localhost/products?sort=-priceurl()->query('products?sort=-name', ['sort' => '-price']); // Appending parameters// http://localhost/products?sort=-name&search=samsungurl()->query('products?sort=-name', ['search' => 'samsung']);
make:trait
和 make:interface
添加默认命名空间
为 @milwad-dev 为 make:trait
和 make:interface
贡献了一个默认命名空间,如果存在以下路径,将在此路径中创建这些类
- 接口
-
App\Contracts
-
App\Interfaces
-
- 特性
-
App\Concerns
-
App\Traits
-
如果您的项目中存在任何这些文件夹,Laravel 将在该命名空间中创建文件。例如,App\Contracts
将优先于 App\Interfaces
。最后,如果找不到这两个目录中的任何一个,则文件直接在 App
命名空间中创建。
发行说明
您可以在下面看到新功能和更新的完整列表,以及 11.4.0 和 11.5.0 之间的差异,它们位于 GitHub 上。以下发行说明直接来自 变更日志
v11.5.0
- [11.x] 由 @milwad-dev 在 https://github.com/laravel/framework/pull/51083 中添加
make:trait
和make:interface
命令的命名空间 - [11.x] 由 @stevebauman 在 https://github.com/laravel/framework/pull/51075 中添加使用查询参数生成 URL 的能力
- [11.x] 由 @joedixon 在 https://github.com/laravel/framework/pull/51082 中添加匿名广播功能
- [10.x] 由 @thijsvdanker 在 https://github.com/laravel/framework/pull/50884 中修复使用游标分页和多个联合以及 where 子句时的绑定顺序不正确的问题
- [10.x] 由 @thijsvdanker 在 https://github.com/laravel/framework/pull/50882 中修复使用联合和列别名时的游标分页问题
- [11.x] 由 @milwad-dev 在 https://github.com/laravel/framework/pull/51093 中修复测试中的拼写错误
- 由 @GromNaN 在 https://github.com/laravel/framework/pull/51100 中修复
Cache\Store
中的参数类型 - 由 @javadihugo 在 https://github.com/laravel/framework/pull/51101 中修正注释中的语法和语义错误
- [11.x] 由 @henzeb 在 https://github.com/laravel/framework/pull/51095 中替换匹配类型提示修复
- [11.x] 由 @levu42 在 https://github.com/laravel/framework/pull/51098 中修复复制模型时排除
laravel_through_key
,修复 #51097 - [11.x] 由 @erik-perri 在 https://github.com/laravel/framework/pull/51090 中向静态 Rule 方法添加枚举类型
- [11.x] 由 @AlexJump24 在 https://github.com/laravel/framework/pull/51102 中向限速器类添加 decrement 方法
- [11.x] 由 @michaelnabil230 在 https://github.com/laravel/framework/pull/51106 中删除无用代码
- [11.x] 由 @j3j5 在 https://github.com/laravel/framework/pull/51112 中修复使用
hashed
类型转换时对其他哈希实现的支持 - 由 @driesvints 在 https://github.com/laravel/framework/pull/51119 中撤销 "[11.x] 为
int
支持的枚举添加对隐式Enum
路由绑定的支持" - [11.x] 由 @osbre 在 https://github.com/laravel/framework/pull/51121 中添加对
whereIn
路由约束中的枚举的支持 - 由 @treyssatvincent 在 https://github.com/laravel/framework/pull/51123 中澄清 \Illuminate\Http\Request::replace 会替换所有输入值
- [11.x] 由 @xuchunyang 在 https://github.com/laravel/framework/pull/51140 中修复
db:show
的 --counts 选项 - 由 @mikemeijer 在 https://github.com/laravel/framework/pull/51133 中更新未找到数据时的 RuntimeException 消息
- [11] 由 @it-can 在 https://github.com/laravel/framework/pull/51127 中更新 DetectsLostConnections.php
- [11.x] 由 @driesvints 在 https://github.com/laravel/framework/pull/51167 中为 FreshCommand 在迁移之后重置连接
- [10.x] 由 @aldobarr 在 https://github.com/laravel/framework/pull/51148 中解决 UrlGenerator 中的空参数弃用警告
- [11.x] 由 @imahmood 在 https://github.com/laravel/framework/pull/51160 中为 NestedRules 提供上下文
- [11.x] 由 @hafezdivandari 在 https://github.com/laravel/framework/pull/51177 中修复在旧版 MariaDB/MySQL 上使用
NULL
作为默认值重命名列的问题 - [11.x] 由 @assertchris 在 https://github.com/laravel/framework/pull/51143 中超级增强 Blade
- [11.x] 由 @Neol3108 在 https://github.com/laravel/framework/pull/51178 中允许隐式绑定具有可选支持的枚举
- [11.x] 由 @lonnylot 在 https://github.com/laravel/framework/pull/51158 中提高 Blade 组件循环速度
- [11.x] 修复 normalizedNameCache 由 @Jubeki 在 https://github.com/laravel/framework/pull/51185 中修复
- [11.x] GenericUser 使用 `getAuthPasswordName` 代替硬编码的列名,由 @Daniel-H123 在 https://github.com/laravel/framework/pull/51186 中修复