workman如何写一个适合热更新的启动php文件!! 想用php写一个手游服务端,借用workerman这个框架。而且有些逻辑经常需要改动的,所以要考虑热更新问题,因为是服务端,所以不能经常重启。求一个适合热更新的启动php文件!
如果是长连接可以直接使用https://github.com/walkor/gatewayworker 支持热更新,并且支持多协议(多客户端),支持多机部署
如果是短链接,用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实现热更新了
关于热更新,Reload留给后来者: 如walkor所述,代表着: 1、启动脚本http.php无法热更新,因此这个文件逻辑应极尽简单; 2、User是具体的业务逻辑class,并在php中 User:: 命名空间几乎等于 require或include 的作用,所以这里就是load的过程了;
然后,我是PHP新手,这种问题我遇到了,相信其他PHP新手也会遇到,特留言,易变弥补doc的不足。
如果是长连接可以直接使用https://github.com/walkor/gatewayworker
支持热更新,并且支持多协议(多客户端),支持多机部署
如果是短链接,用Workerman做。
需要一个自动加载机制,实现热部署,Workerman自带一个自动加载Workerman/Autoloader.php
可以直接使用
下面是一个例子:
1、新建一个服务启动脚本 http.php
2、当前目录新建一个User.php
这样所有的业务逻辑都通过自动加载机制加入到内存,就可以运行reload实现热更新了
关于热更新,Reload留给后来者:
如walkor所述,代表着:
1、启动脚本http.php无法热更新,因此这个文件逻辑应极尽简单;
2、User是具体的业务逻辑class,并在php中 User:: 命名空间几乎等于 require或include 的作用,所以这里就是load的过程了;
然后,我是PHP新手,这种问题我遇到了,相信其他PHP新手也会遇到,特留言,易变弥补doc的不足。