我为什么选择 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/an... ,另一个扩展阅读。

本作品采用《CC 协议》,转载必须注明作者和本文链接
摈弃世俗浮躁,追求技术精湛
本帖由系统于 7年前 自动加精
Summer
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 27

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

:+1:

7年前 评论

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

:+1:

7年前 评论

说到了心坎上,从工作开始一直用 PHP,然后感觉都是在 CURD。之后有幸知道了 ruby-china,有事没事都会上去看看帖子,感觉 Ruby 社区的生态圈很 Geek,自己也开始去学习 Ruby On Rails,可惜在这个城市做 Ruby 开发的太少了,完全没有得选择:cry: 。然后又去折腾 PHP 了。感谢 @Summer 的 PHPHub(现 laravel-china),让我不在那么的迷茫。:+1:

7年前 评论
Cooper

说到 PHP 中 ROR,也是要提提 CAKE 的嘛。 :smile:

7年前 评论

之前一点没接触过php,觉得后台开发其实大同小异,也了解ROR的敏捷程度。
后来了解laravel后,觉得这太强大,脚手架太丰富,可以让自己不拘泥于技术层面的学习。

赞这一句:

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

7年前 评论

不知道 PHP 以后的发展会怎么样?

7年前 评论

php里面 比较喜欢2个框架 symfony和 laravel

7年前 评论
chenyuanqi

选择 Laravel,就是选择一个美好的 PHP 生态圈

7年前 评论

debug 到你开始掉头发!!!!

7年前 评论

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

7年前 评论

同感,国内研究ROR的太少,有一个继承ROR的PHP框架,也算解开了我的ROR情节。

7年前 评论
幽弥狂

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

7年前 评论

十多年前玩PHP的,工作需要重新接触PHP,回头粗粗一看,Symfony即视感……

7年前 评论

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

7年前 评论

:+1: :100:

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

7年前 评论
老财

共鸣!一个好的框架,就是一个公司技术的基石,2016年一个偶然的外包项目接触了Laravel(当时外包技术极力要求用这个框架,本来是基于TP做的),刚开始连这个框架的英文发音都讲不好,心里没底,担心之后的维护,但整个项目开发下来的周期出乎我的意料,太敏捷了,如此快速开发的框架居然很可靠... 在之后,我把公司的技术框架果断的转成了Laravel。

7年前 评论

同感,在无休止的争论哪个框架有用的时候,头发掉完了。

7年前 评论
nickfan

php不像java/python学校教学都不会教完全是草根自学的动力完成的广大群众基础,所以各种野路子出来的人员素质层次不齐。
国内的php环境略懂TP,DZ加一点点jq插件的人就能糊弄80%的中小企业业务需求,
让他们学设计模式、symfony,laravel,动力不足。

另外2014往后基本php已经不是创业的first choice了,
node,go,加传统的java的ssh组合其实做创业项目都其实不差,php的未来群众基础其实增长势头并不如node,java高。

php草根的群众基础想上一层次只能靠大家build出许多开箱即用的系统打造下一个类似于
DZ,WP的生态圈
laravel有一个类ROR的好的基础,但要想在国内火起来,落地到实际的应用系统才行,CMS/bbs是一个切入点,如果有成熟的类似于DZ/WP的plugin管理系统才有爆点。

7年前 评论
nickfan

@Summer BTW:看了知乎的话题,有感而言
其实laravel的优势在概念/思想(concepts),劣势也在概念/思想
想要学习好laravel,技术功底起码理解:
namespace概念及用法,(TP,dz,wp不需要)
composer包管理自动加载规范(TP,dz,wp不需要,虽然可以加上)
安装更新组件时遇到github.com下载慢翻墙等问题有能力解决(TP,dz,wp不基本需要)
设计模式学习(php-the-right-way) (TP,dz基本是傻瓜模式或者是MVC加helper大杂烩)
对于一个小白而言,老板一堆业务需求过来,外行没人在乎你用xx框架,直接一个TP的M()加一堆sql,前端jq搞好了搞定需求,于是快餐菜鸟变快餐老鸟,90%的公司、项目会死掉所以也不在乎可重构可持续、优雅是什么能当饭吃么?
中国现代社会的节奏氛围就是如此浮躁,

能静心跨过前面这几个坎的人才能把自己从做web网站的层次提升到做application应用/project/system系统项目的层次来看待需求问题。

7年前 评论
Corwien

@Summer,请问下,有没有什么好用的api文档管理系统推荐下,除了国外的Swagger,还有没有其他更好的,现在项目需要将旧的API文档系统进行升级,求推荐几款

7年前 评论
qiuyuhome

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

现在应该还达不到这种境界, 还是在不断的通过一些框架和开源项目来开阔自己的视野. 希望尽快的能达到你的这种领悟.

6年前 评论
qiuyuhome

@Corwien 如果你有发现好的 api文档系统, 麻烦请告诉我一下, 我目前用的是 phpDocumentor, 根据注释自动生成文档. 但是感觉还是不太友好.

6年前 评论

也许见识少,但是确实没发现laravel比tp5有什么明显的优势。一大堆人吹嘘laravel如何强大,甩这个框架几条街,XXX框架和laravel差几个yii,laravel思想如何先进,前景如何如何大好,排名如何如何靠前。但是没有见到一个人真的说清楚好在哪里,优秀在哪里,你所认为的甩别人几条街究竟怎么甩的。都是嘴炮。就像tp粉一说就是tp甩zend多少条街一样。其实真的懂的人,并没多少,多为以讹传讹。但是比较起来,还是觉得tp好用,尤其tp5,对编程习惯和需求,以及文档的撰写,都很对中国人的胃口。

5年前 评论

tp的调试模式很清楚,尤其trace,页面报错,直接能定位到代码,laravel页面报错一脸懵逼,完全不知道哪个文件出错误了,哪个代码出错了。没办法自定义验证方法,没办法定义验证场景。想区分insert和update,让insert验证,update不验证,只能if-else,或者写两个方法。页面布局,只能每个views层加上@extends。而tp可以直接定义layout,自动继承。获取请求信息,除了助手函数,laravel每个方法都要用注入去写路由更是费事,完全看不到比tp5好用的地方,要说tp5没有的功能,我觉得队列可能算一个

5年前 评论
zxg321

laravel还是开源成熟的中文项目少了,像当年一个dedecms一个dz论坛几乎建站都用,java开发个网站最后还不得不安装个php的论坛

5年前 评论

:joy:新入职一家公司用这个,那就学学咯,之前一直yii2。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!