控制台命令程序控制器 在 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 控制台命令程序学习记录

