前提:开发 API ,新项目,没有历史包袱,由你自己主导的项目,可自由选择 PHP 版本、框架。现在的你会选择什么框架呢?说下我的选择:我会选 thinkphp 、webman 吧。我比较常用 thinkphp ,webman 是我挺想在生产中尝试的框架。不选其他的一些个人考虑:hyperf 、swoft 在 win 下开发个人感觉体验不佳,实际运行中还存在一些奇怪的问题比较难以解决。laravel 做后台基本是我首选,但用他作为 API 太重了,影响性能,以前吃过这方面的亏,包括 lumen 也折腾了不少。

Laravel 做 api 不行然后换 thinkphp 就行了。这个决策逻辑像过家家

这只是出于我个人经验考虑出发做的选择和观点。每个人看法可能不同,现在就是做个调研,大家可自由发布选择。

影响性能也该有个可量化指标和负载场景。我不认为国内有哪个项目因为框架性能导致业务运行不下去的,相反真因为 laravel 导致的明显的性能问题,我认为这项目的盈利已经足以弥补性能问题了。

普通业务直接 laravel + octane 。吃性能的上 hyperf 。windows 上开发 PHP 基本都是基于 wsl2/docker 的了,问题不大。永远不会选择 thinkphp ,尝试使用过 tp 做过业余项目,这个框架乍一看还堪用,但是其实非常脆弱,要么是特性/用法文档上完全没提(这都算好的,翻翻源码也能知道),要么特性在冷门一点的 case 上直接不支持,官方包也是问题多多,出现过安装官方包根本没法运行的情况,还得自己去改源码做适配。至于 webman 个人也体验过,与其说是一个框架我觉得更像一个脚手架,相对简陋一点,自己需要完成的工作比较多,有一部分的设计有点草台班子的感觉,没有经过深思熟虑。但也因为简单所以个人/小团队相对容易 hold 住。生态部分尽量自己搭建,webman 社区的生态大多是个人作品,质量良莠不齐,使用需谨慎 review 过代码才能用。这个框架要我选我不选,你选我尊重。

我和楼上的看法一样,选择主看生态,至于性能问题一般不是在 io 就是业务上,优化三板斧都能解决。cpu 特别高的地方, 比如物联网广告联盟之类的基本都是写 es, 消息队列,时序之类 左手 nodejs 右手 go

hyperf 、swoft 在 win 下开发个人感觉体验不佳这个不太理解,win 下开发可以选择 vagrant 、wsl 等开发效率并不差

没有特定需求的,哪个熟悉选哪个,哪个生态好选哪个

phalcon

Laravel 影响性能,换 Hyperf 又嫌开发环境不如意。就换个 虚拟机或 docker 的事。难道生产环境是 Windows 吗?不过 Hyperf 不能很好的像 Laravel 调试 dd 让我很不喜欢。

yaf

我们公司一直用 easyswoole ,类似 hyperf 的框架吧,也是 php-fpm 启动。对于框架,lavarel 用的少,社区很大,但是感觉比较多东西在里面,不喜欢他的优雅,什么都是 composer 一把梭,thinkphp 和 easyswoole 用的多,简单就是 CURD 方便,hyperf 和 webman 没有用过,不过了解了一下,差不多。最近还看了下 phalcon ,说是调用的 C 语言的模块,单独写了一个模块,加入到 php.ini 里面,windows 还没起来过,linux 比较方便。呐,我个人可能会选择 Go 语言来写 api ,说实话,PHP 框架就那一套,用数据库类,业务代码写来写去都是 CURD 这样。各个都说高性能,算了直接用高性能的 Go 就完事了。一方面 go 天生有高并发的优势,另一方面,不要老是学 PHP ,限制了自身发展。如果非要选择 php 框架,我会选择 thinkphp 吧,无它唯手熟尔。BTW ,你自己写个框架玩玩也挺不错的。框架就是搭建好的脚手架。

webman

php8.1+webman 简单好用,如果你有开发组件的能力可以用的很爽,官方的一些功能还是比较少,我们自己做了不少东西。

肯定 laravel 啊开发快才是王道, 只要不是你人为造成的性能问题都不是问题

hyperf ,有 laravel 的优雅,也有实现 AOP 的特性,并且基于 swoole 还有协程。

现在没人用 yaf 了吗

不好用,性能相比 Swoole 、Webman 并没有优势

在用 webman ,挺好用的。

这正是我反感的地方,你说的这些我都折腾过一遍,用这个或多或少的会遇到其他坑需要填,或者会牺牲一些开发上的便捷性

经历过的生产环境,95%以上是 linux 。开发环境的话,什么虚拟机、docker 、wsl 等等都折腾过,最后依然是回到了 win 环境,直接装个 phpstudy 完事,开发起来最舒服

不讨论换语言的问题,这个话题很容易引起语言战争,不在于能不能换的情况,我也会 GO ,但不在这个调研讨论范围。

听过这个,可能前辈们用过吧,其实后面入行的,越来越少人用了

在 wsl 上基本没遇到过啥问题,一个项目一个 dockerfile 构建开发环境

好几个自己的小项目都用的 webman ,我是熟悉哪个就用哪个。又不是啥大项目,能跑能挣钱就对了。

不会吧,我现在 vagrant 配好几年没动过,开发环境搭建能有什么坑,不就启动下 linux 环境吗。代码又不在虚拟机里写,还是 win 下面 ide 操作,和你 phpstudy 有啥区别?

我会选基于 symfony 的 Api Platform ,谁用谁知道,欧洲挺流行的。最近在哪里瞟见一份各国编程语言使用占比统计,北欧国家还挺多以 PHP 为主的,特别是 symfony 的母国(法国)。用了多年 laravel ,去年空闲时间尝试 symfony ,相见很晚,laravel 感觉现在有点异教徒了,从 sanctum 开始内置后就不想再用了。

如果是环境问题困扰了你, 推荐一个项目 laradock 可以看下, 会点 docker 用起来会很舒服

人生苦短, 我用 Laravel 如果说真的要强调性能,yaf 或者 phalcon

我自己开发了可以自由切换 workerman 和 swoole 驱动层的框架,要性能在 linux 生产用 swoole ,windows 开发用 workerman 。但写一个优秀好用的框架真的是十分困难,很多组件的生态基本要么只能用方便拆装的(如 symfony 的),要么就自己造轮子,要踩的坑一个不少。

webman 开发这个项目的人技术水平高, 低调, 本身也在做企业服务, 有经验积累. 而且是纯 php 实现, 出现问题好排查,可以自己改.你如果开发后台他们也有一个 admin 后台, 如果做 toc 的, 性能也可以不像隔壁某框架, 充斥了一些饭圈味道.

1 如果你不喜欢折腾,那也不需要调研,你的团队或者你本人熟悉什么技术栈就用什么,毕竟这样开发和维护成本低。2 如果你喜欢折腾,那就面向简历开发,换一种市面流行的框架开发。从你的表述来看,很明显是第一种,作为 V 友,从职业规划的角度来看,我的建议是不要老是执着于框架,框架只是个开发轮子而已,你应该考虑技术以的深度、架构的广度以及业务的沉淀,后续做专职项目管理或技术专家都是有帮助的。

你的什么项目啊,这么吃性能吗?

建议 Laravel 其他真不建议

很少见啊,2024 年还能看到关于 php 的信息,我目前小项目用 orm 类+原生+第三方编辑器,大的推 Laravel ,客户有要求可以 thinkphp

推荐 lumen