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 类新增了 assertStatusassertOkassertNotFound 等方法来简化 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)。它为开发者提供了更强大、更类型安全、更易于测试的工具集。

相关推荐
DigitalOcean5 天前
Laravel 开发者已在 DigitalOcean 上开通超过 10 万台服务器
前端·laravel
两个人的幸福7 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
BingoGo9 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack9 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户30745969820710 天前
PHP 扩展——从入门到理解
php
鹏仔先生11 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下11 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip11 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
酉鬼女又兒11 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog25011 天前
不要再继续优化 TCP
网络协议·tcp/ip·php