php框架学yii还是lav,Laravel框架与yii的对比,二者的优势与缺点是有哪些?

谢邀。有幸在实际项目中分别用过Yii, ThinkPHP和Laravel,都有差不多一年多。不过后来我们开发微信之类的服务都是用的是深度定制和优化后的Lumen.

这几个框架的优缺点LS(TIGERB )已经说得很清楚了。我这里来补充下:

Lumen:

- 优点:基本结构同Laravel,但是已经为API开发做了一些优化,非常适合RESTful的API服务器

- 缺点:如果要用Lumen做传统web,需要自行加载一些Service,比如session;此外,有些为Laravel写的包会不太兼容Lumen,需要自行修改和调整。

TP3.x显然是一个陈旧的框架不适合现在PHP的开发,我们当时也是果断抛弃了。

为什么不选TP5.x

TP5.x明显借鉴了很多Laravel的设计,但是感觉学得不伦不类的,就行中国特色的xxx一样。而且TP5.x的查询构建器很弱,用起来很不爽。还是Eloquent用起来舒服。(Doctrine的那种类似JavaBean的ORM也用过,但是还是没有Eloquent这种ActiveModel式的好用。)

关于优化

路由:

Laravel默认的路由机制比较适合SEO,但是对于只用作API的服务器来说开销就有点高了。

相对而言TP/Yii默认的module/controller/action的匹配方式效率比较高。

建议API的路由使用传统的 module/controller/action 的方式来匹配。可以参考: laravel-default-routes 或 lumen-default-routes.

环境配置(.env文件):

Laravel的这种机制很不错,可以很方便的区分开发/测试/生产环境。

但是.env文件毕竟还是一个纯文本文件,无法享受到 opcache 的加速,所以在实际项目中,我们使用了 .env.php 来代替。

渲染HTML(视图模版):

Laravel 默认用的 blade 很赞,这也是我们选用 Lumen 的原因之一。

TP 用的基于 taglib 的视图模版实在不敢恭维,而且奇葩的是模版的花括号之间居然不能放空格,所有东西都挤在一起...

当然有兴趣的话用smarty模版就大善了

如果要效率最高,铁定使用原生PHP做模版最佳,但是转义输出都带自己写,一不留神容易有xss漏洞

关于其他语言

高并发场景下go语言显然是一个很好的选择,但是一定要结合实际看看项目组人员能力。

PHPer一般对js会比较熟悉,建议可以用node.js做一些高并发的服务。

当然workerman和swoole也是备选方案,但是workerman和swoole中,我觉得,最大的问题在于缺少node.js一样完善的错误处理机制。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值