php框架选择


php框架选择

为什么要使用框架

  1. 为什么需要使用框架?
    • 虽然框架不是绝对必要的,但它是提高我们的开发效率的工具。能够提供结构化、可维护、可升级的程序,保证了程序质量。
    • 使用框架我们可以更专注于业务领域,而不是为某些非业务方面重复造轮子。
    • 框架的缺点就是增加复杂度以及学习成本,但这与从框架获得的好处相比,则可以忽略

框架选择

  1. 框架选择指标
    • 特点功能有哪些?适用当前业务场景?
    • 易用性怎么样?学习成本需要多高,框架功能迭代速度?
    • 稳定性如何?结合官方测试用例以及版本bug修复来看
    • 扩展性怎么样?第三方库支持怎么样?社区活跃度?
    • 维护性呢?框架维护团队?issue有多少?解决速度怎么样等等
  2. 流行的框架之间比较
框架 官方介绍 类别 热度
(web
/framwork)
易用性
(开发者)
版本情况 大版本升级 备注
laravel 具有表达力
优雅语法
重设计
企业级 61k/
22.1k
6修复稳定
7修复添加
8修复添加
提供升级
(升级比较麻烦)
从7,8版本中的
changelog可见,
laravel几乎每个
小版本都会
新增功能
yii2 基于mvc
代码简洁优雅
高性能
企业级 2k/
13.5k
yii2修复稳定 提供1.1->2.* 从changelog可见,
yii2以及进入
维护阶段,
没有新功能增加
symfony 组件重用型 企业级 23.9k 修复稳定 提供4.0.0->
4.4.0->
5.0.0->
5.0.1
基于可重用组件,
laravel和yii都是
借鉴symfony,
商业也成熟
thinkphp6 快速简单面向
对象使用php
新特性以及
借鉴了其他
优秀框架思想
- 7.5k/
2.2k
- 6修复改进添加 提供,不建议
大版本跨域
没接触过,
借用网友的话
“实现了laravel的本地化”
thinkphp3.2 快速简单
面向对象
- 2.8k 停止维护 已废弃 很适合小项目
快速开发
hyperf 高速+灵活 协程、企业级 3.1k 1.1 安全维护
2.0积极支持中
支持建议根据
升级指南升级
为 PHP 微服务铺路的框架,
web服务,网关服务,
分布式中间件,
微服务架构,物联网等
easyswoole 驻内存型的
分布式PHP框架
协程、企业级 3.8k 3.x维护支持 没有相应升级模块,
建议大版本别升级
同hyperf类似
  1. 最好不要大版本升级,因为框架和业务代码可能跟php特定版本相关

结尾

  1. 比较了多款php框架,现代框架基本都是基于composer+组件思想来开发的。
  2. 其中部分框架对开发者不太友好,比如laravel,swoole相关,需要安装特定的ide helper
  3. swoole相关的框架适应场景比较多,其他传统的基本上做web开发
  4. 以上框架都提供了很多开箱即用组件,再加上第三方组件,开发效率其实伯仲之间,但有些框架如果需要替换核心部分,则可能有些困难,以及如果框架结构设计得不够合理,后续小版本也可能会有大改动
  5. 个人觉得学习成本为 hyperf=easyswoole>=laravel>yii2>thinkphp3.2;另外两个框架没有实际用过
  6. 稳定性这块,还是请查看各个框架github的issue+版本升级记录,看看哪个框架更符合,尽可能选择LTS版本
  7. 如果选择的业务很复杂,建议选择swoole相关的框架,毕竟适应的场景多,能够一个框架解决,就不要用两个

 Toc
 Tags