Laravel 7.5发布
Laravel团队昨天发布了v7.5.0,其中包含框架的最新新功能,修复和优化:
新的Http客户端断言
ChristophRumpel为Http客户端贡献了两种新的测试方法:
Http::assertNotSent(function ($request) { return $request->hasHeader('X-First', 'foo') && $request->url() == 'http://test.com/users' && $request['name'] == 'Taylor' && $request['role'] == 'Developer'; }); Http::assertNothingSent();
会 assertNotSent() 返回一个boolean 条件,该 条件具有您匹配请求所需的约束。
这些方法是对现有方法的补充 assertSent() ,当代码应导致不发送特定请求或不发送请求时,可以对相反的情况进行检查。
枚举支持重命名列
根据此功能的拉取请求,“在迁移中,在带有枚举列的表上不可能renameColumn()或不能在change()列类型上进行列。”
Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->increments('age'); $table->enum('color', ['red', 'blue']); }); //PR之前不可能 Schema::table('users', function (Blueprint $table) { $table->integer('age')->change(); }); //PR之前不可能 Schema::table('users', function (Blueprint $table) { $table->rename('name', 'username'); });
提醒一下,文档当前说明了有关可变列类型的以下内容:
仅以下列类型可以“更改”:bigInteger,二进制,布尔值,日期,dateTime,dateTimeTz,十进制,整数,json,longText,mediumText,smallInteger,字符串,文本,时间,unsignedBigInteger,unsignedInteger和unsignedSmallInteger。
更多演员表更新
BrentRoose从Castable::castUsing 实现内部贡献了直接实例化 :
class EloquentDataTransferObject extends DataTransferObject implements Castable { public static function castUsing() { return new DataTransferObjectCaster(static::class); } }
在PullRequest#32225中了解有关此功能的更多信息。Laravel7.4引入了 Castable 界面,请查看该版本以获取更多详细信息。EloquentMutators文档是另一个了解自定义演员表的绝佳场所。
发行说明
您可以在下面查看新功能和更新的完整列表,以及GitHub上7.4.0和7.5.0之间的区别。最新的v7更新日志中提供了Laravel7.x的完整发行说明:
v7.5.0
添加
已添加 assertNotSent() 和 assertNothingSent() 方法到 Illuminate\Http\Client\Factory (#32197)
添加了对renameColumn() (#32205)的枚举支持
支持返回Caster的实例(#32225)
固定的
防止长URL破坏电子邮件布局(#32189)
固定的骆驼肠衣关系(#32217)
修复了Blade组件中合并布尔或null属性的问题(#32245)
固定控制台期望断言顺序(#32258)
route 带有自定义绑定键的固定 助手(#32264)
修复了UriValidator中的双斜杠匹配(修复了缓存的路由和不缓存的路由之间的不一致)(#32260)
固定设置邮件标题(#32272)
优化
优化 方法(#32194)Container::resolve()
优化data_get() 方法的性能 (#32192)
优化 (#32243)Str::startsWith()