PHP Fatal error: Cannot redeclare check_files_change() (previously declared in /www/wwwroot/learnOperGateWayWorker/GatewayWorker/Applications/FileMonitor/start.php:26) in /www/wwwroot/learnOperGateWayWorker/GatewayWorker/Applications/YourApp/start.php on line 49
Fatal error: Cannot redeclare check_files_change() (previously declared in /www/wwwroot/learnOperGateWayWorker/GatewayWorker/Applications/FileMonitor/start.php:26) in /www/wwwroot/learnOperGateWayWorker/GatewayWorker/Applications/YourApp/start.php on line 49
看上去是/path/to/YourApp/start.php
腳本中重定義了funciton check_file_changes()
, 這個(gè)函數(shù)在FileMonitor包中已經(jīng)定義過了,不清楚你要干啥,換個(gè)函數(shù)名就行了。
我想實(shí)現(xiàn)熱更新,check_files_change這個(gè)方法只在FileMonitor/start.php中定義了一次,按照“https://github.com/walkor/workerman-filemonitor”做的,代碼是從這個(gè)地址下載下來的,無改動
YourApp目錄下沒有start.php,只有start_businessworker.php、start_gateway.php、start_register.php,這三個(gè)文件只改了start_gateway.php文件里的協(xié)議,報(bào)錯(cuò)的不是YouApp下的文件,報(bào)錯(cuò)的是FileMonitor下的start.php
不是GatewayWorker下的start.php,是GatewayWorker\Applications\FileMonitor\start.php,這個(gè)是workerman的一個(gè)文件監(jiān)控組件,報(bào)錯(cuò)的就是這個(gè)組件
一開始說了函數(shù)check_file_changes()本來就在官方FileMonitor文件監(jiān)控包里呢,不是什么包報(bào)錯(cuò),而是有其他的腳本里有重定義的同名函數(shù),這是本質(zhì),具體是哪個(gè)腳本里自己排查下就完事了啊,別整復(fù)雜了。
我寫的所有腳本里都沒有check_files_change這個(gè)函數(shù),這個(gè)只在官方的文件監(jiān)控包里有,我搜索了整個(gè)項(xiàng)目,也顯示只在官方的文件監(jiān)控包里有
謝謝前輩的熱心回答,我找到問題了
問題確如報(bào)錯(cuò)所示,是函數(shù)沖突問題,并給出了兩個(gè)文件的位置
但是我的“Applications/YourApp/”目錄下沒有start.php文件,所以迷茫了。原因是我在本地使用phpstorm寫代碼自動同步到服務(wù)器,之前在YourApp下創(chuàng)建了一個(gè)start.php,后來把文件移走了,但是這項(xiàng)修改沒有被同步到服務(wù)器端,導(dǎo)致了上面的報(bào)錯(cuò),而我排查的時(shí)候是根據(jù)本地的文件進(jìn)行排查的,最后檢查了服務(wù)器上面的文件,已經(jīng)解決了問題,官方的FileMonitor組件非常好用,再次感謝blogdaren前輩的回答
PHP Fatal error: Cannot redeclare check_files_change() (previously declared in /www/wwwroot/learnOperGateWayWorker/GatewayWorker/Applications/FileMonitor/start.php:26) in /www/wwwroot/learnOperGateWayWorker/GatewayWorker/Applications/YourApp/start.php on line 49
翻譯過來就是不能在YourApp/start.php
文件的第49行重新定義 check_files_change()
(因?yàn)?code>check_files_change()在FileMonitor/start.php第26行定義過)。報(bào)錯(cuò)文件、行數(shù)、重復(fù)的函數(shù)名都提示給你了,應(yīng)該很好找了
26行是定義的函數(shù),49行是一個(gè)括號結(jié)尾,代碼是官方的,地址:https://github.com/walkor/workerman-filemonitor/blob/master/Applications/FileMonitor/start.php
謝謝前輩的熱心回答,我找到問題了
問題確如報(bào)錯(cuò)所示,是函數(shù)沖突問題,并給出了兩個(gè)文件的位置
但是我的“Applications/YourApp/”目錄下沒有start.php文件,所以迷茫了。原因是我在本地使用phpstorm寫代碼自動同步到服務(wù)器,之前在YourApp下創(chuàng)建了一個(gè)start.php,后來把文件移走了,但是這項(xiàng)修改沒有被同步到服務(wù)器端,導(dǎo)致了上面的報(bào)錯(cuò),而我排查的時(shí)候是根據(jù)本地的文件進(jìn)行排查的,最后檢查了服務(wù)器上面的文件,已經(jīng)解決了問題,官方的FileMonitor組件非常好用,再次感謝xiuwang前輩的回答