Laravel 10.X 新特性全解析

好的,Laravel 10.X 版本引入了一些重要的新特性和改进。以下是其主要特性概述:

  1. 原生类型声明(Native Type Declarations):

    • 框架生成的骨架代码(如控制器、模型、中间件等)现在默认包含了参数和返回值的类型声明(如 string $name, : Response)。这提高了代码的可读性、可靠性和开发工具(如 IDE)的支持度。
    • 开发者可以选择是否在自己的应用代码中使用类型声明。
  2. process 交互功能(Process Interaction):

    • 新增了 Process Facade 和一个强大的底层实现,用于更简洁、更强大地执行外部系统命令并与进程交互。

    • 提供了流畅的 API 来定义命令、设置环境变量、工作目录、超时时间、输入内容,并断言预期的输出、错误输出和退出码。这使得测试涉及命令行工具的功能变得非常容易。

    • 示例代码片段:

      php 复制代码
      use Illuminate\Support\Facades\Process;
      $result = Process::run('ls -la')->output(); // 运行命令并获取输出
  3. 测试辅助工具强化(Enhanced Testing):

    • TestResponse 类新增了 assertStatus、assertOk、assertNotFound 等方法来简化 HTTP 状态码的断言。
    • 新增了 assertSessionHasErrors 的便捷写法,无需再指定错误数组键名。
    • 提供了更丰富的数据库测试断言方法。
  4. pest 脚手架(Pest Scaffolding):

    • 创建新项目时,可以通过 --pest 选项选择使用 Pest 测试框架作为默认的测试套件,替代 PHPUnit。
  5. 路由改进(Routing Improvements):

    • Route:redirect 方法现在支持传递 HTTP 状态码参数。
    • 新增了 Route:permanentRedirect 方法作为 301 重定向的快捷方式。
    • 路由缓存性能得到优化。
  6. where 链式方法(where Chainable Method):

    • Illuminate\Collections\Collection 集合类新增了 where 链式方法,允许在集合查询构建器风格的链式调用中轻松添加额外的 where 条件。
  7. string 辅助函数(str Helper Function):

    • 新增了一个全局辅助函数 str(),作为 Illuminate\Support\Str 门面的快捷方式,用于处理字符串操作(如生成 UUID、转换大小写、截取等)。例如:$slug = str('My Blog Post')->slug();
  8. 可调度任务的默认配置(Scheduled Task Defaults):

    • 在 app/Console/Kernel.php 中,新增了 schedule 方法内的 schedule 函数,允许为所有后续定义的任务设置默认的配置(如时区、运行环境限制)。这避免了在每个任务上重复设置相同的选项。
  9. destroy 路由模型绑定(destroy Route Model Binding):

    • 隐式路由模型绑定现在也适用于 destroy 方法(通常用于删除资源)。以前,它主要应用于 show, edit, update 等方法。
  10. make:model 改进:

    • make:model Artisan 命令增加了 --pivot 选项,用于快速生成数据透视表模型(Pivot Model)。
    • 新增了 --morph-pivot 选项用于生成多态数据透视表模型(Morph Pivot Model)。
  11. PHP 8.2 支持:

    • Laravel 10 要求最低 PHP 版本为 8.1 ,并且完全兼容 PHP 8.2。
  12. 弃用通知:

    • 一些在 Laravel 9 中被标记为 deprecated 的功能在 Laravel 10 中被移除。开发者需要检查并更新代码以适应这些变化。
  13. 长期支持(LTS):

    • Laravel 10 是一个长期支持(LTS)版本,这意味着它将获得 2 年的错误修复 (直到 2025 年 2 月)和 3 年的安全修复(直到 2026 年 2 月)。这对于需要稳定性的项目非常重要。

总结来说,Laravel 10 着重于提升开发体验(类型声明、测试增强、process 功能)、现代化(PHP 8.1+ 要求)和稳定性(LTS)。它为开发者提供了更强大、更类型安全、更易于测试的工具集。

相关推荐
niucloud-admin19 分钟前
NIUCLOUD PHP SAAS上门家政使用文档:服务保障
java·开发语言·php
honsor2 小时前
用 Grafana 做温湿度异常检测:从阈值告警到趋势预测
数据库·mysql·php
开源推荐官2 小时前
多门店 O2O 商城选型复盘:从开发视角对比主流开源系统
java·架构·开源·php
aixingpan14 小时前
aixingpan.cn API开发文档:前端查询夏令时和时区接口指南
前端·php
4SAPI20 小时前
多国产模型混合调度与企业级治理生产选型指南:4SAPI、硅基流动与 OpenRouter 的架构权衡
大数据·人工智能·架构·php
tommyjiatong1 天前
资安底座连环雷:从 PHP2Shell 到 Node2Shell
node.js·php
青峰讲运维1 天前
OpenStack Heat 编排:用模板一键交付云业务,告别手动点页面
开发语言·php·openstack
协作者1 天前
PHP根本影响不到Domino
php·oidc·domino·notes·inotes·verse
神仙别闹1 天前
基于Python+MySQL实现(Web)个人博客系统
python·mysql·php
dingzd951 天前
TikTok账号登录态失效的Cookie字段排查路径
开发语言·php·跨境电商·营销策略