YII2 控制台命令程序学习记录

控制台命令程序控制器 在 console/controllers中  (基础模板放在commands目录)

控制台命令控制器 从 yii\console\Controller 继承而来

控制台命令程序有,带选项,带参数,或不带参数不带选项 等等

实例

<?php

namespace console\controllers;

use yii\console\Controller;

class HelloController extends Controller
{

    /**
     * yii hello/index
     * 不带参数和选项
     * @return int
     */
    public function actionIndex()
    {
        echo "1111";
        return 0;

    }

    /**
     * 带有参数(多个参数) yii hello/who  张三 28  两个参数用空格分割
     * @param $name
     * @param $age  //没有默认值时必须给出
     * @return int
     */
    public function actionWho($name,$age=28)
    {
        echo sprintf("您的姓名:%s 您的年龄%d",$name,$age);
        return 0;
    }

    /**
     * 传入数组  yii hello/who2 张三,28,北京   //多个参数用,逗号分隔
     * @param array $
     */
    public function actionWho2(array $userinfo)
    {
        echo implode(' ',$userinfo);
        return 0;
    }


    public $op1; //选项1
    public $op2; //选项2
    public $op3; //选项3


    /**
     * 返回全部选项 调用方法  yii hello/option --op1=1 --op2=1 --op3=1 message
     * @param string $actionID 选项
     * @return array
     */
    public function options($actionID)
    {
        return ['op1','op2','op3'];
    }

    /**
     * 定义选项别名 简化后调用方法  yii hello/option -o1=1 -o2=1 -o3=1 message
     * @return array
     */
    public function optionAliases()
    {
        return  ['o1'=>'op1','o2'=>'op2','o3'=>'op3'];
    }

    /**
     * 带选项和参数的
     * @param $message
     */
    public function actionOption($message)
    {
        if($this->op1==1)
        {
            echo strtoupper($message)."\r\n";
        }
        else if($this->op2==1)
        {
            echo strrev($message)."\r\n";
        }
        else if($this->op3==1)
        {
            echo str_shuffle($message)."\r\n";
        }
        else
        {
            echo $message."\r\n";
        }
    }

}

控制台命令也可以直接调用已定义的模型类

未经允许不得转载:开心乐窝-乐在其中 » YII2 控制台命令程序学习记录

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏