一直使用的webman的1.0.10版本 看到1.2.0后發(fā)布了挺多插件的 今天想嘗下?
按文檔命令搞一下
composer require workerman/webman-framework ^1.3.0 && composer require webman/console ^1.0.16 && ./webman install
看到webman-framerwork 和 webmanc/console執(zhí)行是ok的 最后一句 install出了問題
35 packages you are using are looking for funding.
Use the composer fund
command to find out more!
-bash: ./webman: No such file or directory
我把webman再次啟動也沒報錯,就是這個./webman install執(zhí)行報錯 我懷疑我這次升級沒成功?
目前已經(jīng)查了原來版本是
workerman/webman-framework v1.0.10 High performance HTTP Service Framework
升級后是
workerman/webman-framework v1.3.6 High performance HTTP Service Framework.
說實在的 我有點擔心 因為我去年安裝webman的時候看文檔這個目錄結(jié)構(gòu) 和現(xiàn)在文檔寫的的目錄結(jié)構(gòu)區(qū)別還是有的 ,這個升級命令 看著有點擔心
將 vendor/webman/console/src/webman 拷貝到 項目根目錄下,然后執(zhí)行 ./webman install
執(zhí)行后報錯了
PHP Warning: require_once(xxxxx/webman/support/bootstrap.php): failed to open stream: No such file or directory
我是很早之前的webman現(xiàn)在結(jié)構(gòu)估計有變化了 我記得全段時間有個那個升級命令 說是把啥目錄搬過去吧
1.0的webman升級,重新創(chuàng)建個項目,然后把app目錄搬過去吧。
composer require workerman/webman-framework ^1.3.0 && composer require webman/console ^1.0.16 && ./webman install
是1.2的升級命令
背景:我們期初一直是用1.0.10的webman開發(fā)程序 穩(wěn)定跑了大約8個月了 也做了很多東西在里面 ,當時webman還沒做插件支持,例如:命令行插件 action-hook插件 redis隊列插件,thinkorm插件,thinkvalidate插件等等都沒有。
當時的文檔介有說明怎么去使用think-orm,以及think-template等。
文檔或者問答沒有的只能自己去實現(xiàn),比如怎么把gatewayworker搞進去。
也正是這些原因可能會給你升級到3.0帶來一些麻煩,建議先看看https://github.com/walkor/webman/releases。
來經(jīng)過實踐從1.0.10 升級到1.3.6
1 按照最新版的https://workerman.net/doc/webman/install.htm來安裝一個新的webman,我安裝的是1.3.6的webman
2 把新的webman下的app刪除,把1.0的app目錄搬過去。
a 如果你app內(nèi)的部分文件使用了use support\bootstrap\xxx 你得改成support\xxx,比如想用redis,你可能就use support\Redis了,你得改成user support\Redis;
b 如果有use support\bootstrap\Container得刪了或者注釋,比如中間件目錄app\middleware]\內(nèi)的文件,按當時的文檔搞的中間件 很可能就用了use support\bootstrap\Container
我就發(fā)現(xiàn)這些,不確定還有其他的沒有
3 把config/下的部分文件搬過去, 我這邊是把3.0下webman/config/目錄下沒有的文件直接復(fù)制過去了,其他文件3.0的config/下的文件要改改,一般是那些你在1.0里配置過的文件,你直接改改文件里的配置項。比如:bootstrap.php , database.php,middleware.php,process.php,redis.php, session.php,route.php, view.php等
著重要強調(diào)的是4個文件 bootstrap.php, process.php ,middleware.php ,route.php,你得自己花點時間琢磨下
4 composer 安裝下那些你用到的包
5 一些特殊插件
一個action-hook ,一個 redis隊列,一個是think-orm插件
如果你用到了beforeAction 和 afterAction 必須安裝action-hook插件 composer require webman/action-hook
如果你用到了以前的redis隊列必須安裝redis隊列,composer require webman/redis-queue,如果你process.php內(nèi)自定義了redis_consumer,想繼續(xù)用,你就把config/plugin/webman/redis-queue/app.php里的enable改成false,或者刪了process.php的redis_consumer,配置下config/plugin/webman/redis-queue/process.php
如果你用到了think-orm你必須安裝composer require webman/think-orm,配置文件還是config目錄下里的thinkorm.php
我這樣就差不多了,你們的情況不一樣的話 可能會還有一些東西要搞搞,反正你就php star.php start 去調(diào)試 看看報錯在哪里去找