Laravel 刚刚宣布立即发布 v5.1。这是 Laravel 历史上第一个提供长期支持的版本。让我们来看看一些新功能,并直接从 Taylor Otwell 了解更多信息。
长期支持
自 2011 年最初发布以来,Laravel 一直遵循开源应用程序中流行的“早发布,常发布”理念。随着该框架 受欢迎程度的空前提升,是时候开始关注大型组织和关键任务应用程序的需求了,这些应用程序需要安全修复,但无法快速升级。Laravel 5.1 现在将提供 3 年的安全修复。
长期支持可以说是 5.1 中最大的功能,但它还包括几个其他新功能。
新的文档
文档已完全重新设计,以提供更高的清晰度,更深入的解释,以及更流畅的流程。这是一项巨大的工作,无数个小时都花在了对每个页面的微调上。
当被问及是否值得花这么多时间时,Taylor 表示他宁愿推迟整个 Laravel 版本,也不愿发布文档质量差的版本。另一个新的文档功能是实时搜索,带有自动完成。
PSR-2
应用程序和生成器已转换为 PSR-2。与当前 Laravel 样式相比,最大的变化是将制表符更改为空格,并且控制结构现在将在同一行上。
从 Blade 模板中解析服务
您现在可以直接从 Blade 模板中解析服务
@extends('layouts.app')@inject('stats', 'StatisticsService')<div>{{ $stats->getCustomerCount() }}</div>
广播事件
Laravel 已经包含了一个强大的事件系统,而这个新功能基于此,允许您通过 Websocket 广播事件,以便您的客户端可以接收它们。有了这个新功能,创建实时应用程序变得简单了。
更好的应用程序单元测试
通过包含 Laracast 的集成测试包,测试您的应用程序将比以往任何时候都更容易。
public function testNewUserRegistration(){ $this->visit('/register') ->type('Taylor', 'name') ->check('terms') ->press('Register') ->seePageIs('/dashboard');}
要深入了解这些功能,以及更多,请查看 Laracasts 视频系列 和 Matt Stauffer 编写的教程。
***
与 Taylor Otwell 的问答
我有机会与 Taylor Otwell 坐下来,向他询问有关此版本的信息以及它对我们 Laravel 开发人员意味着什么。
5.1 中最大的变化之一是它将成为 Laravel 的第一个 LTS 版本。你能告诉我们它将如何运作吗?
这是 Laravel 的第一个 LTS(长期支持)版本。这意味着 Laravel 5.1 将收到 2 年的错误修复和 3 年的安全修复。LTS 版本将每 2 年发布一次,这意味着下一个 LTS 版本将在 2017 年 5 月发布。支持长期支持的 Laravel 版本为开发工作室或需要确保在未来几年内持续提供错误修复的客户提供了更大的安心感。
您在重写整个文档方面花费了大量时间。您认为这将有助于推动 Laravel 的采用吗?
良好的文档是任何开源项目最关键的方面之一。然而,它却经常被忽视或推迟到发布之后。如果我能给项目维护者一个建议,那就是永远不要发布任何没有良好文档的东西。我宁愿推迟整个 Laravel 版本,也不愿发布文档质量差的版本。我认为改进的文档将推动更多人采用 Laravel。当然,我总有备用的方案,我很快就会在这一领域宣布更多消息。不断让 Laravel 学习起来变得令人愉快是我最大的热情之一。
在所有新功能中,您最自豪的是哪一个?您认为哪一个是最重要的?
说实话,我认为文档是 Laravel 5.1 中我最自豪的“功能”。它变得好太多了。就技术功能而言,我喜欢事件广播。它在实现上不需要太多代码,但使用起来非常方便,并且简化了构建实时应用程序的入门过程。中间件参数是 Laravel 5.1 的另一个很棒的补充,它实际上是由社区成员实现的。同样,它是一个在实现上不需要太多代码的功能,但会让很多用户感到非常高兴。
Laravel 5.1 还引入了 PSR-2。很多人抱怨这本应该早点做。您对此有何感想?
在一个贡献活动非常多的项目中引入新的编码风格非常困难。在我开始全职为 Laravel 工作之前,经常会有数百个开放的 pull 请求。在那时将整个项目转换为 PSR-2 将意味着重新构建每个开放的 pull 请求。现在我全职为该项目工作,整个 Laravel GitHub 组织可能只有 20-30 个开放的 pull 请求,这更容易管理。因此,这是一个采用 PSR-2 的绝佳机会,我已经喜欢上能够运行简单的 Sublime Text 构建命令来格式化所有代码了。
您是否仍然忠于您最初创建 Laravel 时最初的目标?
在所有 Laravel 版本中,我认为 Laravel 5.1 是我最喜欢的版本。它简化并改进了 Laravel 5.0 中引入的大部分内容。首先,我认为它通过将“Commands”重命名为“Jobs”,使文件夹结构更“人性化”,并且从复杂的“Handlers”目录结构转移到用于事件监听器的简单、单一的“Listeners”目录。事件广播是经典的 Laravel 功能。要通过 Pusher 或 Redis 广播您的事件,只需在您的事件类中添加一个“ShouldBroadcast”接口。就这样。我喜欢简单而优雅的小功能。中间件参数改进了 5.0 中引入的原始中间件,并使其与 Laravel 4.x 路由“过滤器”一样强大。
我相信 Laravel 产品的范围占用了您的大量时间,但现在 5.1 已经发布了,您今年剩下的时间有什么计划?
我的当务之急是改进一些 Forge 功能。我希望内置 AWS 支持,并改进环境变量管理,使其更像 Envoyer 的。我还在做一些事情,使 Laravel 变得更容易学习。
***
下一步
前往新的 官方文档,其中包含有关安装、升级和所有框架功能所需的一切信息。
当然,订阅我们的每周 Laravel 新闻通讯,及时了解有关该框架的所有新提示、教程和新闻。
