全局函数

    目录

    imigo

    启动一个协程,自动创建和销毁上下文

    imigo(function(){
        $value = Redis::get('key');
        // 无需手动释放任何资源
    });

    传入参数:

    imigo(function($id, $name){
        echo $id, ':', $name, PHP_EOL; // 1:test
    }, 1, 'test');

    imiCallable

    为传入的回调自动创建和销毁上下文,并返回新的回调

    $callable = imiCallable(function(){
        return 'abc';
    });
    function test($a)
    {
        $value = $a(); // abc
    }
    test($callable);

    开新协程去执行回调,无法获取返回值:

    $callable = imiCallable(function(){
        return 'abc';
    }, true); // 这里加了 true
    function test($a)
    {
        $value = $a(); // 协程ID
    }
    test($callable);

    imiGetEnv

    获取环境变量值

    定义:imiGetEnv($varname = null, $default = null, $localOnly = false);

    将在 imi v3.0.0 废弃,请使用 Imi\env()

    Imi\env

    获取环境变量值

    定义:env($varname = null, $default = null, $localOnly = false);

    Imi\cmd

    处理命令行,执行后不会有 sh 进程

    echo \Imi\cmd('ls');

    Imi\ttyExec

    尝试使用 tty 模式执行命令,可以保持带颜色格式的输出

    返回进程退出码

    定义:function ttyExec(string|array $commands, ?float $timeout = null, ?\Symfony\Component\Process\Process &$process = null): int

    \Imi\tty('ls'); // 默认不超时
    
    \Imi\tty('sleep 2', 1.5); // 1.5 秒超时
    
    \Imi\tty('ls', null, $process); // 捕获 \Symfony\Component\Process\Process 对象

    超时会抛出异常:\Symfony\Component\Process\Exception\ProcessTimedOutException

    Imi\dump

    调试输出函数,用法同 var_dump()

    cli 模式运行时,会通过 Log::debug() 来记录运行结果。

    例:

    \Imi\dump('Hello imi!');
    [2022-03-21 16:21:34] imi.DEBUG: 
    string(10) "Hello imi!"