Laravel 的历史

file

本文翻译自 https://maxoffsky.com/code-blog/history-of-laravel-php-framework-eloquence-emerging/
图片来源 Unsplash

Laravel 4 出现之前的 PHP 框架世界

PHP 5.3 版本于 2009 年 8 月发布,它引入了命名空间和名为闭包的匿名函数等新语言特性。这些新特性旨在帮助 PHP 开发人员更好的编写面向对象的代码。尽管提供了许多好处,并指出一个光明的发展前途,但是众多框架并未关注未来,而是侧重于支持旧版本的 PHP。此时框架阵营主要包括 Symfony,Zend,Slim 微框架,Kohana,Lithium 和 CodeIgniter,CodeIgniter 可能是当中最具知名度的 PHP 框架。开发人员喜欢它的全面文档和简单性,任何 PHP 程序员都可以快速开始使用它。它的创造者提供了大量的支持,和一个庞大的社区。不过时间到了 2011 年,Laravel 的创始人Taylor Otwell 认为 CodeIgniter 缺乏一些构建 Web 应用程序的关键功能。例如,CodeIgniter 缺少开箱可用的用户验证和闭包路由。Laravel 的第一个测试版本在 2011 年 6 月 9 日发布,据 Laravel 的创始人 Taylor Otwell 介绍,Laravel 版本 1 仅仅是为了解决使用 PHP 框架 CodeIgniter 时不断增长的痛苦。

Laravel 1

从第一个版本开始,Laravel 已经包含了内建的用户认证,用于数据库操作的 Eloquent ORM,本地化,模型以及关系,简单的路由机制,缓存,Session,视图,通过模块和库提供的扩展性,表单,HTML 帮助函数 等等特性。
此时Laravel 还不是一个 MVC 框架,因为它还没有控制器功能。不过开发者们立即喜欢上这个新框架的干净语法,和它蕴含的潜力。在接下来的几个月中,Taylor 添加了验证方法,分页,命令行包安装器,扩展了 Eloquent ORM,并为框架的组件添加了数以百计的单元测试。 Laravel 在不到六个月的时间内就从版本 1 升级到了 版本 2 。

Laravel 2

2011 年 11 月 24 日私有发布了版本 2,它在 Readme 文件里写到:
“Laravel 使用简单,富有表现力的语法来构建精彩的应用程序,将你从意大利面条式的代码中释放出来。开发应该是让你享受的创造性体验,而不是痛苦的事情。享受新鲜空气。“
作为框架的第二个主要版本,它从创作者和社区中得到了一些稳固的升级。实现了以下功能:控制器支持,「Blade」模板引擎,依赖反转控制的容器。随着控制器的加入,该框架成为一个完全合格的 MVC 框架。开发者们很兴奋 Laravel 被塑造的模样,但不满意取消了第三方模块的支持(在第 3 版中作为 Bundle 被重新引入)。路由和控制器可以进行混合和匹配的能力(以前流行的 PHP 框架缺乏的一个功能),强大的 Eloquent ORM,以及在框架核心中使用控制反转的模式,这些特性吸引了更多的开发者兴奋的尝试新的 Laravel 框架。不到两个月后,新的主要版本发布,Laravel 3 .

Laravel 3

Laravel 3 发布于 2012 年 2 月 22日,伴随一个闪亮的新网站和众多新功能。此版本专注于集成单元测试,Artisan命令行接口,数据迁移,时间,更多的 Session 驱动器,和数据库驱动器,「bundle」的集成等等。Eloquent ORM 被重构成一个 bundle 包,并且在短时间内没有被包含进框架。它最终被纳入 Laravel 3,从那之后一直是框架的一部分。Laravel 3 是当时最稳定的 Laravel ,它足够强大以应付各种不同的 Web 应用程序。与其他框架相比,它又足够简单,以及平滑的学习曲线。
Laravel 3 很快便追上了如 CodeIgniter 和 Kohana 这样的 PHP 框架大男孩,许多开发者因其强大的功能和表现力从其他框架切换过来。众多关于 Laravel 3 的博客帖子,教程,评论和课程出现在网络上,Laravel 成为 PHP 世界的新热点。关于 Laravel 的论坛持续的引导新的用户。Laravel 3 在稳定的版本中保持了相当长的一段时间,但在框架发布 5 个月后,框架的创建者决定从头开始重写整个框架,使之成为一组通过 PHP 依赖管理器「Composer」分发的软件包。Laravel 4 在开发中的代号为 「Illuminate」。Laravel 4 是一个重大升级,其拥有全新构建的框架核心,和令人惊讶的扩展性。下表显示了所有 Laravel 版本的功能比较,包括最后一个主要版本 Laravel 4(译注:文章发布于 2013 年 7 月)。Laravel 4 里发生了什么变化,以及为何会从之前的版本发生如此大的飞跃?

Laravel 版本比较

特性 Laravel 1 Laravel 2 Laravel 3 Laravel 4
Auth
Cache
Eloquent
DB Connectors
MySQL
PostgreSQL
SQLServer
Migrations
IoC container
Config
Form helpers
HTML helpers
URL helpers
Routing
Controllers
Models
Views
Relationships between models
Redirects
Response
String helpers
Validation
Unit Tests
Blade templating engine
DB Seeding
Queues
Mail
Facades
Command line interface (CLI)
扩展性实现 模块 模块 bundle composer 包

Illuminate,也被称之为 Laravel 4

Laravel 4 于 2013 年 5 月 28 日发布,在版本 3 之后的 1 年又 3 个月。似乎每隔几个月都有一个 Laravel 新版本。尽管频繁发布新版本是框架在发展的一个迹象,不过这也降低了框架的可靠性。一些开发者抱怨「节奏太快」和「不稳定」,因为他们必须迁移到新版本,有时候因此无法在以前的架构上构建大型应用程序。社区希望有更多的稳定性,以及一些新功能和经过更好单元测试的 Laravel 组件。Laravel 4 是所有以前框架的顶端,展现了 PHP 开发的光明前景。
Laravel 4 从一开始就被重写为一个组件(或包)的集合,它们相互融合以构成一个框架。这些组件的管理通过名为「Composer」的最佳 PHP 依赖管理器完成。Laravel 4 具有一系列之前 Laravel 版本(甚至其它 PHP 框架)所不具有的功能:数据库种子,消息队列,内置邮件应用,更强大的包含范围定义、软删除等功能的 Eloquent ORM。
与之前的 Laravel 版本不同,从现在起 Laravel 将有一个定期的发布时间表 - 每 6 个月发布一次包含程序修补和错误修复的小版本。随着更多的单元测试已经覆盖 100% 的框架功能,Laravel 4 承诺通过 Composer 软件包提供更加稳定和轻松的扩展。
通过拥抱 PHP 5.4 的新功能,Laravel 在短短两年多的时间里已经走了很长的路,吸引了越来越多的全球开发者。框架背后的远见卓识者 - Taylor Otwell 和围绕 Laravel 的社区在很短的时间内为 PHP Web 应用程序创造了一个对未来有好的基础架构,取得了巨大的进步。用户与贡献者社区的稳定增长,也意味着 Laravel 的成功。

本文章首发在 Laravel China 社区

Night gathers, and now my watch begins.