最好的PHP框架有哪些
首推 Laravel ,其次是 Yii,Laravel 的设计思想以及在工程实践上的支持,超过 ThinkPHP 好几个世代。如果说原生的 PHP 是火枪, ThinkPHP 就是来福枪,Lavavel 则是冲锋枪。你要打猎的话,带把来福枪完全足够了,但是要上战场,非得更自动化的冲锋枪不行。
好处有很多啊:
- Composer 做包管理
- 标准的 Autoload 实现,可以让 `include xxx.php` 成为历史
- 各种依赖注入
- ORM 支持
- 好用的命令行和脚手架
- 丰富的文档和活跃的社区
即使有这么多好处,也不过是追赶了几年前 ROR 的水平,还在用 ThinkPHP 的人,不过是懒得接触新知识罢了。
说ThinkPHP适合国人使用的人,自黑的时候不要带上别人,多谢。
有了Composer的支持,像攒电脑一样实现一个自己的框架也不是多困难的事儿了,但是要做出一个“好”框架还是挺困难的一件事。项目用过的框架6个(ZF1,SF2,CI,Yii,Laravel4,Silex),了解过的就不数了,见过的框架中最优秀的当属Laravel4,解释如下:
- 直接。各种常用的功能都由一些简单的Service实现,通过Facade访问,很多常见的问题都简单优雅的处理了,接口设计很贴心,大部分使用场景都替你考虑到了。由于功能简单直接,文档也就无需赘言,官网上的文档也不是太多,看一遍完全可以开始干活儿。
- 开放。有了Composer,优秀的代码可以很方便的引入项目,Laravel的框架就用到了boris,whoops,monolog,swiftmailer和symfony下面的一批基础类库,而不是非得自己写的代码才放心。
- 简单。不只是使用上的简单,框架本身的实现也不像别的“企业级”框架那么沉重,各个功能见很少的耦合,通过依赖注入容器组装起来。要从源代码里挖掘框架内部的实现也没有那么多抽象层级。
另外,PHP新手还是从PHP The Right Way开始学吧,对新时代的PHP有个正确的认识,CI适合的是还在用<PHP5.2的老人,不是新手
这里列几个客观数据(截止至 2017 年 1 月 2 日):
一、Github 上 PHP 项目排行第一
Laravel 作为这一页里最晚出现的框架,Star 数量远远高于排名第二的框架。链接在此 Build software better, together
二、Google 趋势排第一
Laravel 跟其他框架的对比图,链接在这里 https://www.google.com/trends/explore?date=2006-08-16 2016-09-16
三、用户投票排名第一
编程网站 Sitepoint 上的用户调查第一名,链接: The Best PHP Framework for 2015: SitePoint Survey Results
Laravel 在国内的生态圈发展也日趋成熟,你可以很轻松的在网上找到很多 Laravel 相关的中文学习资料、技术讨论社区等。下面是推荐的几个网站:
- Laravel 中文文档,涵盖所有版本的 https://d.laravel-china.org/
- Laravel China 社区 - 由 Summer 在 2014 年创建的 PHP & Laravel 中文社区
- Laravel 5.1 LTS 速查表 - Laravel 速查表
- 「Laravel 资讯」项目上线,整站源码开源
- PHP 标准规范中文版
- Laravel 第一本书 —— 《Laravel 入门教程 - 从零到部署上线》
- Laravel 第二本书 —— 《Laravel 进阶课程 - 从零开始构建论坛系统》
- Composer 福音 —— Composer 中文镜像 / Packagist 中国全量镜像正式发布!
------------------- 更新于: 2016. 12. 11 ------------------
Laravel 第一部中文新手书籍《Laravel 入门教程》发布
线下聚会正在进行中 :
Laravel Dinner 第一期 (北京站) 和第二期 (深圳站) 完美收官啦!
[Laravel Dinner 03 期][上海] 线下聚会开始报名啦
------------------- 更新于: 2016. 08. 18 ------------------
Lumen 5.1 中文文档翻译完成「精校版」_PHPHub
Laravel 5.1 LTS 速查表重磅发布_PHPHub
------------------- 更新于: 2014 . 09. 02 ------------------
Laravel China is ready Laravel 中文文档 , 欢迎发起 issue 提交纰漏 和建议 --> Laravel China · GitHub
------------------- 更新于: 2014 . 08. 17 ------------------
PHPhub - PHP &amp; Laravel的中文社区 一个干净的 PHP 中文社区一直是我的梦想, 这几天动手写了一个, 今天算是正式上线, 虽然还有好多功能需要优化, 欢迎大家加入, 给我点动力, 哈哈.
使用 Laravel4 编写的, 代码也是开源的 summerblue/phphub · GitHub
------------------- 更新于: 2014 . 03. 06 ------------------
一个比较有说服力的数据:
Laravel 是 Github 上最有名的 PHP 项目, 8627 个 star, 领先第二名的 Symfony 和 第三名的 CI 接近 1000个 star, 见这里 --> Most Star PHP Project On GitHub
ci 和 symfony 得话多少年才能达到今天的影响力, 而 Laravel 的第一个 commit 发生于 Jun 09, 2011 , 见下图:
---------------- 首次发布 ---------------------
Laravel4 , 整个 PHP 社区都为之疯狂的框架.
Laravel4 讲究的是最佳实践, 是一个积极向上的框架, 向 牛B 的 Rails 看齐, 借鉴了很多在成熟框架已经体现出来很成功的元素:
- RESTful Routing ;
- 设计精妙的 Blade 模板引擎, 轻快, 不失灵活 ;
- 合理的 ORM model 层, Eloquent ORM , 借鉴于 Rails 的成功;
- migration 数据库版本系统 和 seeding ;
- 使用包管理器 Composer , 打开了一扇开往春天的门;
- 强调测试驱动, 整个核心经受过完整的测试, 高质量的代码;
- 命令行驱动, 可以做到高度自动化 (讲究效率, 代码生成器...) , 借鉴与 rails ;
- 合理使用 PHP 的新版本特性, 让写代码更加有乐趣, 跟上时代的步伐;
- 积极向上的社区, 这个很重要呀, 大家都在学习着, 创造着好的工具, 加快开发速度, 提高编程效率, 接受新知识的速度也很快.
- 对 php 标准化的支持 PHP-FIG — PHP Framework Interop Group
另: 以下几个链接供参考
Why Laravel is Taking the PHP Community by Storm
The future of web development is Laravel
2014 我有个愿望, 希望 PHP 社区一盘散沙的局面成为过去, Laravel, Composer, PHP-Fig 才是未来, 快速开发, 遵守规范, DRY, 构建一个团结的社区, 聪明, 理智的社区.
没有一个比现在更合适的时间了, 朋友们, 把我顶起来吧, 让 PHP 的新人和老鸟都知道在 PHP 社区里面, 有这么一个好东西的存在, 也算为 PHP 社区做贡献. May God be with You.
------------------------------------- END -------------------------------------
- yii框架是首选,文档齐全,面向对象很彻底,性能超群。实例化模型以后很多组件都能用上,唯一不喜欢的是查询出来的数据操作都是对象式的,我还是比较喜欢数组方式,只好用chtml::listData()转化。另zii wigdet对于提高开发速度非常牛逼。
- 其实thinkphp 3真的很不错,而且容易上手,文档更全更适合国人。我个人比较喜欢thinkphp的db部分和route rest部分。
- zend framework 更加像一个超大超全的类库,虽然运行速度有点慢,很多框架都留有zend类的接口,其价值可见一斑
- codeigniter没仔细看,不敢妄言,中文支持比较少,很多人用的是他的分支版,kohana,有兴趣的话可以看下。
- 最后说一下speedphp,这个框架的设计思想我很喜欢,简单高效,有sae版,扩展方便,适合改造,速度也不错,我开发社交游戏就喜欢用这个框架改造。
好的定义是什么?
设计模式好?
代码规范?
文档详细?
注释明了?
不知什么时候起,知乎上好像有一股黑thinkphp风气,就像java程序员鄙视php程序员,php程序员鄙视asp程序员,asp程序员鄙视易语言程序员,易语言程序员鄙视authorwave一样。
不说thinkphp其他方面怎么样,人家的的确确是一个沉淀了八年的作品,从头到尾没有收过你一分钱,完善的开发文档,本土化做的很不错。(这算黑点吗?)社区运营确实存在问题(广告,hr泛滥,提个问题没人解答),但是他的确是一个让广达中国php程序员能过快速认识mvc,框架,CBD(thinkphp3.2之后的确做到了cbd,完全可以对框架底层定制化开发),包括orm等等,虽然他在某些方面的确算不上一个顶尖优秀的框架,但是从学习入门型框架的角度来看,他的确可以算得上是一个简单,轻量,适合一个完全没有接触过mvc框架的小白门用来入门和学习的框架了。
况且像腾讯右侧栏里面大多数推广网站,极客学院的后台以及很多中小型创业公司都在用他。包括国内最广的weiphp框架也是基于tp3.2开发的,稳定性和广泛性可见一斑。
最后说一点,整个IT行业现在都很急功近利,追求的是敏捷开发,短期效益,thinkphp只不过恰好迎合了这种形式。要背锅的应该是整个大环境(体制说:怪我咯¯\_(ツ)_/¯)不要总是无脑怪罪到thinkphp本身或者用thinkphp的人身上,更不要站在技术制高点谩骂thinkphp的作者,这样只会体现用其他高端有逼格框架的人的素质下限。上面很多朋友也说了。
没有最好的,只有更适合自己的。
并不是所有项目都适合用框架的,我个人的观点是,团队项目是一定要用框架的。这样可以使整个项目保持统一的接口、编码风格,为以后的后续维护降低成本。
关于是否要用框架的文章,昨天刚看到一篇好文章,这里一起分享:《好代码不值钱》http://www.aqee.net/2011/03/16/good-code-is-cheap-code/
我不是很赞同自己写框架的说法,原因有二:
1.时间成本:一个框架要涵盖的内容是比较广泛的,一个成熟稳定的框架也不是几个工作日就可以完成的。我们应该站在巨人的肩膀上,而不是总想着去自己造轮子。
2.学习成本:团队中自己开发的框架,一般是由1~2个核心人员来完成的。其中可能包含了比较多的个人风格,文档也可能不会很健全。使用这样的框架开发过程中如果团队中有人员调整,将是一件很痛苦的事。
在选择适合自己的框架的时候,也有两点小建议:
1.文档丰富,之所以把这个做为首要建议也是考虑到团队合作的情况下,新人可以快速上手。
2.有在维护更新,不要去用那些已经过时的框架。一个框架如果很久没有更新,起码可以说明用的人不多,基本可以忽略。另外,如果能用社区或者商业公司在维护的框架,最好不要用个人维护的框架,也是考虑到风险成本。