国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

Worker回調(diào)屬性,建議增加實例類傳入的方式

diyya

MyClass.php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
class MyClass{
public function __construct(){}
public function onWorkerStart(Worker $worker){}
public function onConnect(TcpConnection $connection){}
public function onMessage(TcpConnection $connection, $message) {}
public function onClose(TcpConnection $connection){}
public function onWorkerStop(TcpConnection $connection){}
}
啟動腳本 start.php
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';

// 載入MyClass
require_once __DIR__.'/MyClass.php';
$my_object = new MyClass();
// 調(diào)用類的方法

$worker->on=$my_object;//諸如這樣

避免只能這樣
$worker->onWorkerStart = array($my_object, 'onWorkerStart');
$worker->onConnect = array($my_object, 'onConnect');
$worker->onMessage = array($my_object, 'onMessage');
$worker->onClose = array($my_object, 'onClose');
$worker->onWorkerStop = array($my_object, 'onWorkerStop');

3527 3 0
3個回答

admin

先看完手冊,再來指揮作者

最后我好心回復(fù)下你的這個 “基礎(chǔ)問題”

  • diyya 2021-11-24

    你強調(diào)的“基礎(chǔ)問題”并沒有說服力,按你這樣說法,何必用類庫,一切自己寫得了。你又不是作者

walkor 打賞

感謝你的提議。
如果你覺得每次用類設(shè)置回調(diào)很麻煩,可以自己定義個函數(shù)例如

function worker_bind($worker, $class) {
    $callback_map = [
        'onConnect',
        'onMessage',
        'onClose',
        'onError',
        'onBufferFull',
        'onBufferDrain',
        'onWorkerStop',
        'onWebSocketConnect'
    ];
    foreach ($callback_map as $name) {
        if (method_exists($class, $name)) {
            $worker->$name = [$class, $name];
        }
    }
}

workerman注重精簡,只提供必要接口,所以一些可有可無的功能不會加上去。如果今天加一個,明天加一個,workerman會變得臃腫,這個不是大家想看到的。

  • 暫無評論
diyya

謝謝作者的答復(fù),非常有道理

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??