-
Notifications
You must be signed in to change notification settings - Fork 48
run in coroutine
Inhere edited this page Jan 15, 2019
·
2 revisions
协程运行需要 swoole 4+ 支持
通过设置属性 protected static $coroutine
可以启用swoole协程来运行命令
<?php
/**
* Created by PhpStorm.
* User: inhere
* Date: 2018-01-26
* Time: 17:47
*/
namespace Inhere\Console\Examples\Command;
use Inhere\Console\Command;
use Inhere\Console\IO\Input;
use Inhere\Console\IO\Output;
use Inhere\Console\Util\Helper;
/**
* Class CorCommand
* @package Inhere\Console\Examples\Command
*/
class CorCommand extends Command
{
protected static $name = 'cor';
protected static $description = 'a coroutine test command';
// 启用协程运行
protected static $coroutine = true;
/**
* @return array
*/
public static function aliases(): array
{
return ['coro'];
}
/**
* do execute
* @param Input $input
* @param Output $output
*/
protected function execute($input, $output)
{
$output->aList([
'support coroutine?' => Helper::isSupportCoroutine() ? 'Y' : 'N',
'open coroutine running?' => self::isCoroutine() ? 'Y' : 'N',
'running in coroutine?' => Helper::inCoroutine() ? 'Y' : 'N',
], 'some information');
}
}
执行时,会自动检查是否支持协程,不支持的环境将会自动退回普通方式执行。
我的其他PHP项目
- inhere/kite 方便本地开发和使用的个人CLI工具应用
- php-toolkit/pflag PHP编写的,通用的命令行标志(选项和参数)解析库
- phppkg/easytpl 使用简单且快速的 PHP 模板引擎
- inhere/php-validate 一个简洁小巧且功能完善的php验证库
- inhere/sroute 轻量且快速的HTTP请求路由库