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。此时框架阵营主要包括 SymfonyZendSlim 微框架KohanaLithium 和 CodeIgniterCodeIgniter 可能是当中最具知名度的 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 的成功。

Night gathers, and now my watch begins.