workman如何写一个适合热更新的启动php文件

zhouciming

workman如何写一个适合热更新的启动php文件!!
想用php写一个手游服务端,借用workerman这个框架。而且有些逻辑经常需要改动的,所以要考虑热更新问题,因为是服务端,所以不能经常重启。求一个适合热更新的启动php文件!

7492 3 0
3个回答

walkor 打赏

如果是长连接可以直接使用https://github.com/walkor/gatewayworker
支持热更新,并且支持多协议(多客户端),支持多机部署

  • 暂无评论
walkor 打赏

如果是短链接,用Workerman做。
需要一个自动加载机制,实现热部署,Workerman自带一个自动加载Workerman/Autoloader.php
可以直接使用

下面是一个例子:
1、新建一个服务启动脚本 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、当前目录新建一个User.php

<?php
class User
{
    public static function getEmail()
    {
        return 'test@test.com';
    }
}

这样所有的业务逻辑都通过自动加载机制加入到内存,就可以运行reload实现热更新了

  • 暂无评论
jzgenius

关于热更新,Reload留给后来者:
如walkor所述,代表着:
1、启动脚本http.php无法热更新,因此这个文件逻辑应极尽简单;
2、User是具体的业务逻辑class,并在php中 User:: 命名空间几乎等于 require或include 的作用,所以这里就是load的过程了;

然后,我是PHP新手,这种问题我遇到了,相信其他PHP新手也会遇到,特留言,易变弥补doc的不足。

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