workman如何寫一個(gè)適合熱更新的啟動(dòng)php文件?。?br /> 想用php寫一個(gè)手游服務(wù)端,借用workerman這個(gè)框架。而且有些邏輯經(jīng)常需要改動(dòng)的,所以要考慮熱更新問題,因?yàn)槭欠?wù)端,所以不能經(jīng)常重啟。求一個(gè)適合熱更新的啟動(dòng)php文件!
如果是短鏈接,用Workerman做。
需要一個(gè)自動(dòng)加載機(jī)制,實(shí)現(xiàn)熱部署,Workerman自帶一個(gè)自動(dòng)加載Workerman/Autoloader.php
可以直接使用
下面是一個(gè)例子:
1、新建一個(gè)服務(wù)啟動(dòng)腳本 http.php
<?php
use Workerman\Worker;
require_once './Workerman/Autoloader.php';
$worker = new Worker('http://0.0.0.0:1234');
$worker->count=3;
$worker->onMessage = function($connection, $data)
{
$connection->send(User::getEmail());
};
Worker::runAll();
2、當(dāng)前目錄新建一個(gè)User.php
<?php
class User
{
public static function getEmail()
{
return 'test@test.com';
}
}
這樣所有的業(yè)務(wù)邏輯都通過自動(dòng)加載機(jī)制加入到內(nèi)存,就可以運(yùn)行reload實(shí)現(xiàn)熱更新了
關(guān)于熱更新,Reload留給后來者:
如walkor所述,代表著:
1、啟動(dòng)腳本http.php無法熱更新,因此這個(gè)文件邏輯應(yīng)極盡簡單;
2、User是具體的業(yè)務(wù)邏輯class,并在php中 User:: 命名空間幾乎等于 require或include 的作用,所以這里就是load的過程了;
然后,我是PHP新手,這種問題我遇到了,相信其他PHP新手也會(huì)遇到,特留言,易變彌補(bǔ)doc的不足。