Yii命令行使用总结

整理Yii Console 一些用法和问题

  • Console Applicaton 配置和运行
  • 如何实现接收原始参数?
  • 如何实现终端等待输入,输入确认?

在框架根目录,有文件名称为 yii,可以在命令行模式运行。

#!/usr/bin/env php
run();
exit($exitCode);

整理等待输入,输入确认用法。yii\helpers\BaseConsole是终端的帮助类,处理命令行输入,输出。


namespace app\commands;

use Yii;

class HelloController extends Controller
{
    /**
     * This command echoes what you have entered as the message.
     * @param string $message the message to be echoed.
     */
    public function actionIndex($message = 'hello world')
    {
        //Yii方式接收参数
        echo $message . "\n";

        try {
            var_dump($argv);
        } catch (\Exception $e) {
            echo $e->getMessage(); //Undefined variable: argv
        }

        //接收原始命令行参数
        global $argv;
        var_dump($argv);
        


        //输入提示符
        $name = \yii\helpers\BaseConsole::input("输入姓名: ");
        $age  = \yii\helpers\BaseConsole::prompt("输入年龄: ", ['default' => 20]);

        if(!$this->confirm("确定输入正确吗?")) {
            exit("退出\n");
        }
        echo "你输入的姓名是:$name\n";
        echo "你输入的年龄是:$age\n";

    }
}

终端输出

# 提示输入,确认输入
php yii hello 
输入姓名: 小明
输入年龄:  [20] 10
确定输入正确吗? (yes|no) [no]:yes
你输入的姓名是:小明
你输入的年龄是:10

# $argv
php yii hello msg
        
        array(2) {
          [0]=>
          string(3) "yii"
          [1]=>
          string(5) "hello"
          [2]=>
          string(3) "msg"
        }
...

你可能感兴趣的:(Yii命令行使用总结)