我为什么选择 Laravel

以下是我个人对技术的选择过程,完全主观。分享这些信息的目的,在于多一份信息给新手作为参考,请当做个人经验分享。 ;-)

--

记得那时是 2013 年中旬,个人对 PHP 生态圈的感情,完全是累觉不爱了。

站在 2013 年会往后看,在我过去三年的编程经历中,开发接触到 Discuz、DiscuzX、WordPress、Drupal、Joomla、帝国、PHPWind、ThinkPHP、Codeignitor、Yii、CakePHP、Zend、Slim、Kohana、新公司的自己开发设计过气的老框架+正在设计的新框架 ....

每接触一个软件\框架,就是对一套全新的机制\系统的学习,不同的类加载的实现机制、不同的核心类名称、不同的函数名称、不同的插件系统、不同的主题系统。但其实,大部分时候,他们做的都是同样的事情,有些软件架构像 DiscuzX、Drupal、Joomla 的代码尤其难啃。

看着网络上遍布着各种 《PHP 最流行 30 个开源软件》、《PHP 最流行 50 个框架》的文章,开始问自己:“难道编程就是这样子无止境的学习框架?无止境的学习这些开源软件架构?”,后来也试过选择一个框架作为自己的主修,从外观上看,后台提供商的支持最靠谱的就是 Zend Framework ,因为 Zend 是 PHP 后面的那家公司,可是做了一个项目以后,就完全做不下去了。复杂、臃肿的设计,让你完全产生不了爱意。第二个尝试是当时最受欢迎的框架 Codeignitor ,在当时确实眼前一亮,简单的 MVC 架构,创新的路由设计,可是还是太轻了,要开发一个项目,需要装这个装那个,并且都是手动去装,遇到核心没提供的类库(Class),得去互联网上搜索,然后复制黏贴到手动创建的文件中。中文网页上,有些代码不小心加了几个中文的 还有 ,debug 到你开始掉头发。

这就是一个 PHPer 在 2013 年的彷徨,完全心灰意冷。在那一年,也开始接触除了 PHP 以外的生态圈 - Python 的 Django, 那时候热的烫手 Nodejs 的 express.js,微软的 http://ASP.NET,Java 的 Spring,Objective-C 的 CocoaTouch(开始公司 iOS App 的开发工作)。很快就发现了 Ruby on Rails 和 Gem 包管理,被他们 ROR 的生态圈深深吸引。他们的设计哲学:

  • 强调与注重敏捷开发;
  • 约定高于配置(Convention over configuration);
  • DRY(Don't repeat yourself)不要重复自己;
  • 「编程愉悦性」很重要。

简直就是不能同意更多,站在 ROR 看 PHP 的生态圈,PHP 生态圈简直可以用「一盘散沙」来形容。PHP 拥有那么多的开发者,开发观念还是那么落后,大家各自为战,那么多的脑力,到最后都消耗在大量的重复性工作上,生产力严重浪费。

在 2013 年底,准备完全切到 ROR 上, 2014 的新年愿望里有一条: ”找一份 ROR 工作“。

2014 年 3 月份,接到一位朋友的邀请做创业公司的技术合伙人,开始给未来的团队选择技术堆栈,其实当时差不多可以决定后端选型,就是 ROR。唯一让我犹豫的是,ROR 用的是 Ruby,开发群体太小,作为技术合伙人,不得不考虑后面人才引入的问题。这个时候无意间发现了 Jeffrey Way 的 Laravel 视频教程,通过深入学习,以及对作者的了解,基本上可以定义:这就是 PHP 中的 ROR。不只是长得像 ROR,他的开发哲学(上面罗列出来的)也像 ROR。另外 Jeffrey Way 决定了完全投身 Laravel 的教育中,也加深了我对 Laravel 的信心。Jeffrey Way - Envato Tuts+ ProfileNettuts+Tuts+ 的优秀讲师,几年的教学经历中,技术狩猎非常广,尤其是Web 开发上,写过将近 500 篇的教程。最后新公司的技术堆栈,选择了 Laravel,虽然那会 Laravel 还比较年轻(现在也很年轻,这里是 2016),但是 Laravel 有一个巨大优势,那就是基于 PHP ,PHP 开发者众多,潜力无限。

... 省略无数社区链接文字,手工加链接手累...

我希望 Laravel 会是我学习的最后一个框架。因为

作为工匠,我更愿意把我有限的生命用在作品上,而不是对工具的无止境的学习上。

结语

以上摘自我在知乎的回答 https://www.zhihu.com/question/30622752/answer/136397605 ,另一个扩展阅读。


:book: Laravel 书籍: