thinkphp6的深度项目迁移到webman的成本有多高?

holly188

手头上有一个已经用thinkphp6开发了一年多的项目,已经上线运行了半年多,项目还挺稳定的,thinkphp6的开发效率还是很扛打的,赞一个!但是后期因为要涉及到一些消息队列、计划任务处理等等异步处理的任务,解决起来很不巴适,观望webman很久了,不知道坑多不多,不敢随便动手,想问问各位社区大佬有没有哪个走过这个迁徙路线的?

7187 8 2
8个回答

admin

这么多人都已经吃上螃蟹了,你还在说螃蟹能不能吃。如果是真超大项目,我觉得别移植了,老代码别折腾

小杰

迁移成本不高,关键是速度提高太多,很多原来用的组件都可以用。现在webman原生组件又不断的上市,赶快动手,要不然何时才能用起来?先从控制器入手,调通一部分,后面的自然。

gongaiorg

正在做,不一样的地方有不少,还在实践中

  • shixia 2022-03-21

    webman和tp6还是有不少区别的 其实总体来说区别不大但是有些地方想用的更符合以前tp6的写法的话还是需要去改源码

lavaman

我用了三四天,调试到运行最多一周。 PC 用户 员工移动三个端

  • lavaman 2022-03-24

    我原来是tp5的项目,难度不大,session config db input等常用方法需要重写。tp里$this->error 等操作,在webman里面需要前面都加上return 或许error方法也需要重写。看个人规范。个人感觉迁移难度主要看原来项目代码是否规范。

  • holly188 2022-03-24

    嗯!我这个项目比较重度依赖的有tp的缓存和request类、还有中间件功能,因为基本上就自己一个人写,代码还算干净,也都比较遵循tp6的规范。。看你这么说,长了一点信心,下周回来自己先搬点功能跑一次

CZZU

不建议更换,把单独需要处理的分开来用webman就行了

  • 暂无评论
holly188

已经用tp6的think-worker插件顺利跑起来了,运行速度快了十几倍,内存占用降到了原来的百分之一,原来的6+Mb变成了60+kb,对付偶尔的流量小高峰足够了!稍有不爽的是现在的调试信息不是在控制台,而是直接打印在返回结果中,不过因为没有脱离tp6项目,所以可以继续在普通模式下调试开发。针对一些异步队列的需求目前是另外开了一个webman项目。

  • lavaman 2022-04-04

    建议还是直接上webman,这个插件和webman相比可不够看,我刚测试简单的hello world,tp6本机rps是55 用think-work插件第一次qps是1k,后面测试越来越低,降到120rps才稳定不掉,用webman(1.3.4) rps直接就狂飙6k+,而且多次测试很稳定,偶尔还跳到过一次12k。。只能说我连nginx都想省了。

    可能有人说主要压力在数据库,但是我测试用webman本地数据库的简单find(1) 单条数据操作 ,rps都在4k多,tp6连数据库的下限都到不了,实际部署成本还是略高。

  • nitron 2022-04-04

    debug信息不都一般写文件里,然后tail么..

  • holly188 2022-04-06

    访问速度已经可以接受,我项目主要是因为峰值卡内存严重,解决了内存问题,已经舒一口气了。不得不说,我把之前做过的java老项目跑起来对比,workerman居然还要省内存!跑的还快!想不到啊

redsky

我已经从TP6转移到了webman,总体来说需要做这几步:
1、安装webman,composer create-project workerman/webman;
2、安装think-orm,composer -W require psr/container ^1.1.1 webman/think-orm,配置文件在config/thinkorm.php,配置好,你就可以像TP6那样使用TP的模型和数据库;
3、webman的request跟tp会有不同,注意下。https://www.workerman.net/doc/webman/request.html
4、如果你想继续使用TP的cache和validate,需要自己抽离TP,因为目前网上的都是比较旧的代码。建议用webman官方提供的,然后自己做下封装,就可以不改变原有使用习惯
5、中间件的使用跟TP没太多区别,配置文件中定义好,该怎么用还是怎么用:https://www.workerman.net/doc/webman/middleware.html
6、路由定义需要好好研究下,跟tp差别比较大,如果你习惯tp的用法,可以自己在route.php中做一层实现,也不是很难。

目前我的开发,还是看着TP的手册(主要是模型、数据库和验证)进行开发,同时也用上来队列等,基本没有改变原有的开发习惯。从接触webman到完全转到webman,一个星期左右。

  • 暂无评论
tanhongbin

没有并发压力,就不要折腾了,后面新项目可以用webman写,基本写法和tp laravel基本一致

  • 暂无评论
年代过于久远,无法发表回答
🔝