add swoole support