PHP 是世界上最受欢迎的编程语言之—。最近发布的 PHP7 令这种服务器的编程语言比以前变得更好,更稳定了。
PHP 被广泛应用于重大的项目。例如 Facebook 就是使用 PHP 来维护和创建它们的内部系统的。 WordPress 使用 PHP 来驱动它的内部构件,得到的回报是超过 59%的网站都在使用 WordPress 作为内容管理系统。目前,有 82%的网站,它们的服务器端使用的编程语言就是 PHP 。
本文将介绍三种最流行的 PHP 框架: Symfony, Laravel 和 Yii 。将通过三种框架的比较,帮助你选择哪种框架有可能最符合你的需求。
1
qhxin 2016-07-19 20:57:50 +08:00
Laravel 来一发
|
2
jhdxr 2016-07-19 21:02:32 +08:00 11
这 TM 是机翻然后在人工稍微修正的吧?不贴原文地址也就算了,这文章写的一坨什么东西?随便摘几个例子(惨不忍睹我没看完)
『事实上, Laravel 这个最流行的 PHP 框架建立了 Symfony 。』 WTF ? R U KIDDING ME ? laravel 基于 symfony 还差不多 『 Yii 也是最快速的 PHP 框架,这归因于慢吞吞的加载技术。』慢吞吞的加载技术带来了最快速的框架?很好很强大。 lazy loading 都不认识么 『模板引擎提供了诸如自动 HTML 转义和过滤功能,并填写由原生 PHP 留下的空白。』原生 PHP 留下的空白是什么鬼? 『例如,原生 PHP 用以下冗长的代码写越狱』 越狱? 。。。 这种垃圾文章居然还有人推广,哪怕是出于这种推销自己账号的目的,真是一下子暴露了你们公司的实力要多么的低。。。以至于拿着狗屁不通的文章来给自己增加脸面。。。 |
3
wh1012023498 2016-07-19 21:06:38 +08:00
Yii2 用了两年的美男路过~
|
4
mahone3297 2016-07-19 21:08:22 +08:00
symfony+1
|
5
mahone3297 2016-07-19 21:09:17 +08:00
不过确实,文章内容没营养。。。
|
6
livedutvchina OP @jhdxr :这位朋友你好,感谢你的指正。我虚心接受批评。刚才我重新看了文章,也把一些翻译有误的地方改过来了。因为我本人不是编程专业,有翻译得不对的地方。请大家多多包涵和指教。有兴趣的朋友,也可以阅读英文原文: https://opensource.com/business/16/6/which-php-framework-right-you
|
7
kideny 2016-07-19 21:59:43 +08:00
其实 phalcon 挺好的,就是还不支持 php7.0
|
8
misaka19000 2016-07-19 22:41:23 +08:00 2
难道就没有人是用 CI 的?
|
9
luckylion 2016-07-19 23:30:12 +08:00
我用 TP,管他国产国外的还是排名第几.自己用着顺手就行
|
10
ericls 2016-07-19 23:31:11 +08:00 via iPhone
管理员管管?
|
11
hantsy 2016-07-20 00:03:48 +08:00
Full stack 的选择,首选是 Zend 和 Symfony, 工业级设计,支持最新 PSR ,各部件可以替换,自由搭配。备胎: CI , Cake , Laravel , Yii 。
轻量的, Slim , Silex 等。 |
13
sysatom 2016-07-20 09:18:02 +08:00
Laravel +1
|
14
zjddp 2016-07-20 09:20:15 +08:00
CI +1
|
15
Nicksxs 2016-07-20 09:21:28 +08:00
thinkphp
|
16
1023k 2016-07-20 09:30:16 +08:00
phalcon +1
|
17
chaegumi 2016-07-20 09:30:29 +08:00 1
期待 ci4.0 吧, https://github.com/bcit-ci/CodeIgniter4 可以看到,重写了
|
18
tabris17 2016-07-20 09:31:46 +08:00
PHP 这种结构只适合轻量框架
|
19
Immortal 2016-07-20 09:35:16 +08:00
一直都是 yaf 喜欢代码都在自己掌控的感觉
框架与我 有个 autoload 简单的路由 其他都自己去实现 觉得更有控制力 有了一定的代码积累量 很多功能直接丢自己封装的类上去就好了 不会有大框架那种很多冗余功能 我喜欢做加法 不喜欢做减法 保证代码冗余最少 |
20
likezun 2016-07-20 09:48:40 +08:00
|
22
AbrahamGreyson 2016-07-20 09:51:24 +08:00
@tabris17 事实上,如果你想玩设计,也是可以的, 除了不支持对象持久化, oo 方面并没有明显的短板。
主要还是看你,在不基于 spring 、 bean 之类的框架之外, 自己能否写分层的东西来。 |
23
Light3 2016-07-20 10:05:37 +08:00
撸主你确认这是你自己写的嘛.. symfony2 社区国内很不成熟.你文中写的成熟指的是国外的?
|
24
herozzm 2016-07-20 11:08:11 +08:00 via Android
phalcon 只是很多坑爬不出来,国内用的少
|
25
tabris17 2016-07-20 11:10:14 +08:00
@AbrahamGreyson 问题不在语言,而在于 PHP 的运行方式。 Swoole 、 Workman 这些框架毕竟是小众。传统 fcgi 环境下,每个请求都是一个全新的上下文环境,等于每个请求都是冷启动。每个请求都要执行一遍框架的初始化代码,载入或重建上下文环境,框架越复杂,执行效率就越低下。
|
26
livedutvchina OP @Light3 :你好。这篇文章是我翻译的,英文原文: https://opensource.com/business/16/6/which-php-framework-right-you
因为我不是编程专业的,如翻译有不对的地方,请大家多多指教。上面有一位朋友的评论言词比较激动,但我依然保留他的评论。不过,也希望留言的朋友可以注意一下。互相尊重是交流的基础。 我也想作一下澄清: 文章是我翻译的,可能有些专业术语的地方我误理解错误了,这个我以后会努力学习,争取进步。但细心看完文章,有些信息对编程还是有帮助的。推广此文,旨在分享与交流,当然也希望大家可以了解一下 livecoding.tv 这个网站。可能国内访问会有些卡,但我们正在解决这个问题了。至于这个网站是否对大家有帮助,大家可以自己去体验一下,再作评价。也很欢迎大家对友好的态度提出建议,帮助我们提高网站的用户体验。 再次感谢! |
27
chuhemiao 2016-07-20 11:31:22 +08:00
sy 国外居多, ll 把国内,不过听说 yii 很强大
|
28
iVanilla 2016-07-20 11:32:57 +08:00
@tabris17 所以就有了这样的项目: https://github.com/StoneGroup/stone
|
29
mcwanderer 2016-07-20 11:54:11 +08:00
CI
|
30
tabris17 2016-07-20 12:04:21 +08:00
@iVanilla 基于 swoole 跑了一个 fcgi 接口的 server ?有点意思,但是不敢用于生产环境(我连 swoole 都不敢用……
|
31
tinyhill 2016-07-20 12:56:12 +08:00
slim +1
|
32
jhdxr 2016-07-20 12:56:51 +08:00 2
@tabris17 wokerman (纯 php ,然而还是依赖了一些扩展的)也可以直接拿 php 做 server ,据说性能还不错,然而我也没 /不敢 /没这需求 试过
@Immortal 那你其实不还是重复造了许多轮子么,我觉得你可以试试看 composer ,它的意义不就在于我们不要上来就堆个框架,而是可以去选择自己想要的组件来自由组合 @livedutvchina 你好,我就是你所说的那位『言词比较激动』,但却似乎还得感谢你没有删除我评论(你倒是删删看啊)的那位朋友。在你看来我是不是得先夸上你和你的网站一番,最后再斗胆提出几个问题才算『互相尊重』? (最重要的事情最先说)说到尊重,首先转载 /翻译别人的文章保留原文出处这么基本的事情你都不懂得做到,更何况 **在原文的下面原作者已经明确使用了『知识共享 署名+相同方式共享 4.0 国际』许可证( https://creativecommons.org/licenses/by-sa/4.0/deed.zh )**,而毫无疑问你的文章已经违反了。 至于『但细心看完文章,有些信息对编程还是有帮助的。』这点我实在无法苟同。坦白说原文里有些观点和信息我也认为有些问题,例如『 Yii also is the fastest PHP framework 』『 Blade has zero overhead to application performance because the blade view files are stored in .blade.php extension 』,但你糟糕的翻译使得这篇文章问题更加严重更加难以理解,而术语的翻译错误更是雪上加霜,这不光是是否会让人难以理解文章意思的问题,而是在误导他人。 如果你真的是抱着学习交流的态度,那么我建议你应该在显著地方附上原文地址,和一段小小的文字来说明你可能无法做到翻译准确,同时在翻译有疑问的地方不妨同时保留英文原文。 最后,编程能力 /经验不足不是错,但既然自己知道还跑出来装(哔——)那就是你的不对了。 (发完这条就 block ,所以不用回我了 |
33
tinyhill 2016-07-20 12:58:13 +08:00
@tabris17 其实现在 opcache 已经能大幅降低执行的开销了,但问题的核心确实还受限于 fcgi 模式的限制。
|
35
BrightDawn 2016-07-20 13:05:12 +08:00
翻译成[慢吞吞],我觉得看了文章的人得来个黑人问号了,还哪里对人有帮助?
|
36
BrightDawn 2016-07-20 13:09:07 +08:00
推广请发到推广节点,不要浪费大家的时间。
|
37
xytjy 2016-07-20 14:57:26 +08:00
我用的 corethink ,个人感觉还不错,开源免费的,你可以百度 corethink 到官网下载看看,希望对你有所帮助
|
38
scourgen 2016-07-20 15:05:12 +08:00
这文章基本上和那种『 10 个最好的 CSS 框架』,『 20 个最好的 JS 框架』等等文章一个路数,除了骗点击量骗骗小白之外,完全没有参考性。
|
39
xingzhela 2016-07-20 15:20:14 +08:00
thinkphp
thinkphp thinkphp 重要的事说三遍 |
40
istrive 2016-07-20 15:22:59 +08:00
@misaka19000 我
|
41
laravel 2016-07-20 15:29:45 +08:00
laravel +1
|
42
alen 2016-07-20 15:39:03 +08:00
用过 cake ,看过 Laravel,目前用尔康,坑挺多的欢迎大家入坑。:手动滑稽
|
43
good 2016-07-20 16:58:13 +08:00
@tabris17 swoole 的性能很牛逼的, 生产环境使用了 swoole 的 websocket, 虽然刚开始经常 coredump,作者很热心,联系作者能很快的处理 BUG,目前线上非常稳定
|
45
sunsh217 2016-07-20 18:33:50 +08:00 via Android
ci +1
|
46
gavinczhang 2016-07-20 18:55:55 +08:00
我认为框架只要提供好几个功能点就足够了
1. autoload 2. dev/pro 分离(包括 config 自动载入不同目录下) 3. mvc (不需要所谓的 Smarty 等模板引擎, php 语法足够优秀易懂) 4. db/redis/orm ( ORM 可以实现读写分离,锦上添花而已,毕竟有中间层可以更专业的解决这个问题) 5. router 另外我对一些主流框架(官网提供的最新版)做了性能压测 CodeIgniter 、 yaf 、 yii 、 laravel 、 swoole framework 、 kohana 、 thinkphp 把框架独立到某目录下,其他项目的入口文件统一读取此目录内的框架资源 controller 中载入 view 并传递 title , view 中直接 echo $title ,关闭 debug 等其他调试开关 php7 环境下, 2.5GHZi7 16G 内存 siege -c 500 -t 5s 并发 500 持续 5s 结果: yaf 1600>swoole 1400>ci 600>thinkphp 280>kohana 277>yii 205>laravel 76 (自己基于上述的 5 个观点开发的小框架,压测性能达到 1500 ) 仅供参考。 详情: http://blog.bingxuecandong.com/?p=262 |
47
iVanilla 2016-07-20 19:47:29 +08:00
@tabris17 这个项目确实是 Alpha 阶段,目前不建议用于生产环境,我自己用 PHP7 的 runkit7 的话,会出错的,到时让作者看看。
PHP5 的 pecl 版 runkit 应该没问题(这个扩展目前还不支持 PHP7 ),不知用 Stone Server 能不能在 PHP7 跑,我使用的是 Web 模式。 |
48
ThreeBody 2016-07-20 20:11:01 +08:00
翻译得真的是很烂很烂,很多问题,如同上面有人说的,这就等于垃圾营销内容
看了楼主的发帖纪录,全 TMD 是都是推广软文 |
49
ghostsf 2016-07-20 20:17:07 +08:00
为什么没人说 TP5
|
50
AbrahamGreyson 2016-07-21 00:41:13 +08:00
@tabris17 如果你对轻量的定义就是是否能最大限度的利用计算机资源,那我们没在一个层次上讨论问题。 PHP 自然有他独特的适用场景,我们的讨论都是建立在这个场景之上(你要去使用),而不是深挖坟的说哇我不会横向扩容哦。
|
51
brando 2016-07-21 12:10:25 +08:00
Drupal 7 我用的是这个。
|
52
breeswish 2016-07-21 12:50:37 +08:00
Phalcon 有些东西比如 template engine 功能残缺,最后还是要换专业的来,比如好用的 twig 。
很多框架大而不全,想用一小部分功能都不行,还是得整个引入;需要的功能没有的时候还是要用其他的 最后, symfony 大法好,谁用谁知道,不仅天生对接的是领域最优秀好用的组件(比如 twig, doctrine ),而且各个组件都可替换。只是性能不好。 |
55
iVanilla 2016-07-22 09:58:04 +08:00
@breeswish Blade 比 Twig 好用就是了,就算是玩具也非常强大, Twig 能套原生 PHP ??? Blade 就能。
|
57
breeswish 2016-07-22 10:28:35 +08:00
@iVanilla 玩具的意思是不具有用于工业级项目的严谨性和规范性,和强大没有什么关系。允许 Eval 就可以做任何事情了,某种程度上可以说这很强大,然而这和玩具没什么关系...
|
58
iVanilla 2016-07-22 10:40:52 +08:00
@breeswish 之前在微信群里跟某人争论过 PHP 原生代码和模板引擎,他反对使用模板引擎,说“你是人,你非要套一层猪皮,说:这才是人” 我竟然无言以对。
如果原生 PHP 这么好就不会有人开发模板引擎了,模板引擎很方便,虽然原生 PHP 也能做到,但模板引擎的目的就是让程序猿写着方便。 |
59
demon 2016-07-22 11:54:33 +08:00
|
60
kopa 2016-07-22 15:04:11 +08:00
CI 的路过
|
61
mingyun 2016-07-23 22:43:30 +08:00
目前团队用的 laravel5
|
62
xytjy 2016-07-25 15:06:42 +08:00
我用的是 corethink ,轻量易上手、代码质量高,官网有免费下载
|
63
hyiier 2016-07-27 14:17:50 +08:00
果断推荐 yii2 ,快速开发,教程多多,比如 www.yii-china.com 就是 yii2 写的
|
64
hhxsv5 2018-01-31 16:53:35 +08:00
LaravelS github.com/hhxsv5/laravel-s 通过 Swoole 加速 Laravel,(Laravel+Swoole) 兼顾开发效率与性能。
|