tp、laravel、yii框架的优缺点

本文对比了Yii2、Laravel、ThinkPHP3.2及ThinkPHP5等PHP框架的优缺点,探讨了各框架的适用场景及其性能表现。同时,文章还讨论了不同框架在API服务器开发、路由优化等方面的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

愚见:

  • yii2:

    • 优点:gii蛮不错的,简化了开发流程,可以生成绝大数的代码,开发后台等效率还是蛮高的

    • 缺点:前后端完全的分离的趋势下,yii2前后端的耦合的还是有些重了

  • laravel:

    • 优点:优雅,框架结构组织清晰(抽象了中间件,任务,服务等模块),提供的artisan开发工具开发效率高,社区活跃完善,并且提供了简化的轻量级框架lumen

    • 缺点:貌似代码有些过于优雅丧失了一些性能

  • thinkphp3.2

    • 优点:简单明了方便快捷,上手快

    • 缺点:缺少面向对象的设计,框架社区相关的辅助工具少

  • thinkphp5

    • 优点:基本面向对象,可能借鉴了laravel或者ruby on rails, 对于开发者更加友善了

    • 缺点:框架社区相关的辅助工具仍然少

    • ab大概跑了下性能(无参考价值):

      thinkphp5 > lumen > yii2
      - 优点:基本结构同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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值