好的,Laravel 7.x 版本引入了多项重要的新特性和改进:
-
路由模型绑定优化 (Route Model Binding Improvements)
-
Laravel 7 允许在路由闭包中使用类型提示来自动解析 Eloquent 模型。系统会自动将 URI 中的参数值注入到对应的模型实例中。
-
示例:
phpRoute::get('users/{user}', function (User $user) { return $user; }); -
这简化了控制器方法的参数解析。
-
-
自定义验证器 (Custom Validation Rules)
-
开发者可以更容易地定义自己的验证规则逻辑,并通过
Validator::extend方法注册它们。 -
示例:
phpValidator::extend('phone_number', function ($attribute, $value, $parameters, $validator) { return preg_match('/^1[3-9]\d{9}$/', $value); }, '请输入有效的手机号码'); -
使用:
php$request->validate([ 'phone' => 'required|phone_number' ]);
-
-
邮件功能增强
- Markdown 邮件模板改进: 提供了主题自定义和组件系统,使创建复杂的 Markdown 邮件模板更高效。
- 可邮件通知类: Laravel 7 允许将邮件发送逻辑封装在通知类中,使代码组织更清晰。
-
用户认证增强
Auth::attempt方法现在可以接受一个额外的回调参数,用于处理双重认证等场景。
-
HTTP 客户端优化
-
引入了基于 Guzzle HTTP 客户端库的封装,提供了更简洁、流畅的 API 来发起 HTTP 请求。
-
支持各种身份验证方式(如基本认证、摘要认证等)和超时设置。
-
示例:
php$response = Http::withHeaders([ 'X-Example' => 'value', ]) ->timeout(10) ->get('https://example.com/api/data');
-
-
CORS 支持
- 新增了
cors中间件,用于处理跨域资源共享 (CORS) 请求。默认情况下,此中间件会应用到全局中间件栈中,方便地配置允许的源、方法、头信息等。 - 配置文件:
config/cors.php
- 新增了
-
查询时类型转换 (Query Time Casts)
- 允许在查询数据库时,对特定属性进行类型转换(如将 JSON 字段转换为数组),类似于 Eloquent 模型上的属性转换(
$casts),但作用于查询构造器层面。
- 允许在查询数据库时,对特定属性进行类型转换(如将 JSON 字段转换为数组),类似于 Eloquent 模型上的属性转换(
-
Eloquent 模型工厂优化
-
模型工厂被重构为基于类的工厂,提供了更好的组织和 IDE 支持。
-
示例:
php// database/factories/UserFactory.php class UserFactory extends Factory { public function definition() { return [ 'name' => $this->faker->name, 'email' => $this->faker->unique()->safeEmail, ]; } }php$users = User::factory()->count(5)->create();
-
-
Artisan
test命令- 新增了
php artisan test命令,作为运行 PHPUnit 测试的便捷方式。
- 新增了
-
Blade 组件增强
- 提供了更强大的 Blade 组件功能(包括匿名组件、组件属性、插槽等),使创建可复用的 UI 组件更加方便和灵活。
这些特性显著提升了 Laravel 的开发效率、代码可读性和框架功能。