75

Laravel 11发布了——新的增强和特性!

By: 天网科技美国有限责任公司
8 mins
500
Laravel 11 Release

《pg电子官网》将于2024年3月12日上映. 根据Laravel的支持政策, Laravel 10将正式活跃到2月4日, 2025, 和Laravel 11将在9月3日之前获得漏洞修复, 2025, 并在3月12日之前进行安全修复, 2026. Thus, 现有的Laravel应用程序可以在了解升级需求后的一段时间内进行升级.

Nevertheless, the Laravel 11 已经提出了许多令人兴奋的功能和更新. 最新版本将至少支持PHP 8.2. 新的Laravel Reverb包和定义的目录结构是Laravel 11中新增的内容.

正如制作者所宣布的那样, Laravel 11支持优雅的加密密钥轮换和最小的应用程序结构. 它默认使用SQLite, 实现运行状况路由, 改进队列测试, 添加重发邮件传输, 并集成了一个Prompt验证器, 还有一些有用的改进.

Let’s explore!

Laravel 11的新特性!

  • Laravel Reverb

    Laravel Reverb是为Laravel应用程序新推出的第一方WebSocket服务器. 它将启动客户机和服务器之间的实时通信. It is meant for speed; thousands of connections and piping data can be supported by a single server, 最终减少HTTP轮询的延迟.

    这个新的增强功能可以与Reverb的第一方Laravel Forge集成一起部署,以监控对Pulse的内置支持.

    因为Reverb已经内置了使用Redis的水平缩放支持, 它增加了系统管理多个服务器的连接和通道的能力.

    Laravel Reverb与Laravel Broadcasting和Laravel Echo兼容,因为它利用了WebSockets的push协议.

  • 没有更多的HTTP/内核

    内核不再需要执行任务,而是可以在Bootstrap/App中完成.

    返回应用程序::配置()
    ->withProviders ()
    ->withRouting(
        web: __DIR__.'/../routes/web.php'
        commands: __DIR__.'/../routes/console.php',
      )
    ->withMiddleware(function(Middleware Smiddleware) {
      $middleware->web(append: LaraconMiddleware::class):
    })
  • 精简目录结构

    Laravel 11取消了中间件目录,默认情况下控制器不扩展任何内容. Till Laravel 10.X时,出现了9个中间件,其中一些从未被开发人员使用过. However, 如果需要定制,它们仍然可以在不同的地方(应用程序/服务提供商)使用.

    For instance:

    公共函数boot(): void {
      EncryptCookies:除了([' some_cookie ']);
    }
  • New Dumpable trait

    这个添加是为了改进框架的核心,因为有几个类具有“dd”或“dump”方法. 此外,这个可转储的特性对于创建自己的类很有用.

    类Stringable实现JsonSerializable, ArrayAccess {
      使用Conditionable, dumable, Macroable, Tappable;
      str('foo')->dd();
      str('foo')->dump();
  • 模型转换更改

    Model casts are methods and not property; thus, 现在可以从强制转换中直接调用这些方法. For instance,

    受保护的函数强制类型转换():数组{
      return [
        'email_verified_at' => 'datetime',
        'password' => 'hashed',
        “选项”=;AsEnumCollection:: (UserOption::类),
      ];
    }
  • Config Changes

    Until now Laravel had myriad config files; Laravel 11 removed those files and cascaded down all config options. The .Env文件已经增加,以便可以包括所有需要设置的选项.

  • 精简默认迁移

    新的Laravel应用程序包括2014年和2019年的一些默认迁移. 但是,现在这些文件将删除日期并仅移动到两个文件中.

  • New Once Method

    新版本的Laravel引入了一个新的once-helper方法,以确保无论对象被调用多少次, 它的返回值是相同的. 当某些代码决定只运行一次时,此函数很有用.

  • Route changes

    将只有两个路由文件,控制台.php and web.php. API路由现在可以通过php artisan install: API来选择, 确保API路由文件和Laravel Sanctum.

  • APP_KEY rotation

    如果APP_KEY改变,旧版本的Laravel往往会破坏数据库中的数据. Laravel 11有一个新的优雅的旋转,不会打破旧的, encrypted data, 使用APP_PREVIOUS_KEYS以逗号分隔的列表.env variable. 它将使用新密钥自动重新加密数据.

  • 新的向上健康路线

    要触发一个diagnosinghealththevant, Laravel 11将包含一个新的“/up”健康路由. 它将改善正常运行时间监控过程.

  • 删除控制台内核

    控制台内核将从Laravel 11中删除. 因此,在routes/console中定义特定的控制台命令.PHP现在是可能的.

  • Eager Load Limit

    Laravel 11将集成Eager Load Limit包背后的代码

    User::select('id', 'name')->with([
      'articles' => fn($query) => $query->limit(5)
    ])->get();
  • Named arguments

    Laravel的向后兼容性指南不包括命名参数. 因此,如果需要的话,他们可以选择重命名函数参数来微调Laravel代码库. 当使用命名参数调用Laravel方法时,必须谨慎执行,并理解参数名称可能在将来更改.

  • 新的工匠命令

    这个特性已经在Laravel 11中添加,以确保类的快速创建, enums, interfaces, and traits -

    PHP工匠制作类
    PHP工匠制作:enum
    PHP工匠制作:接口
    PHP工匠make:trait
  • New welcome page

    新的欢迎页面是与Laravel 11一起发布的另一个重要更新,用于创建新的Laravel应用程序.

  • PHP 8.2 minimum support

    Laravel 11应用程序至少需要 PHP 8.2 version. 因此,要利用这个最新版本的改进,升级PHP是必不可少的.

  • SQLite 3.35.0+ is needed

    对于SQLite数据库,Laravel 11需要它的3.35.0或更高版本来执行其所有功能和升级.

  • 教义移除DBAL

    最新的Laravel版本不依赖Doctrine DBAL. Also, 不需要为创建和更改各种列类型注册自定义Doctrine类型, 这是以前需要的自定义类型.

YOU MAY ALSO LIKE: Laravel安全最佳实践

安装或升级到Laravel 11可以获得更多的好处!

要安装Laravel 11,设置Laravel安装程序:

Composer global需要laravel/installer

And then run:

Laravel新项目名称

要将旧的Laravel版本升级到新的Laravel 11,请遵循 the Laravel Shift 是最简单的方法. However, there is an upgrade guide 可以在官方文档中找到.

尽管Laravel 10将在2025年2月之前获得安全修复, 升级到Laravel 11没有什么坏处. 对于现有的Laravel应用程序来说,能够利用Laravel 11中新增的功能总是有益的.

准备用Laravel 11升级您的项目? 如果您需要定制的Laravel解决方案或 聘请Laravel开发人员 . 无论您是在寻找开发新的应用程序, 升级现有的, 或者从早期版本迁移, 我们的专家团队将为您提供指导. 欲了解更多信息,请pg电子官网 [email protected].