创建控制台命令程序
1、控制台命令继承自 yii\console\Controller控制器类
2、在控制器类中,定义一个或多个动作,动作与控制台子命令相对应
3、在动作方法中实现业务需求的代码

运行控制台命令程序
1、通过执行应用根目录yii脚本执行
2、脚本命令后跟指定的路由:控制器ID/动作ID

一个控制台命令demo:

首先在 console/controllers目录项目创建一个 HelloController.php 文件

namespace console\controllers;

use Yii;
use yii\console\Controller; class HelloController extends Controller
{
public function actionTest()
{
echo "Hello World \n";
}
}

如果需要执行,先切换到根目录,然后执行控制台命令

yii hello/test 即可

 

带参数的控制台命令程序
1、控制台命令程序可以接受参数,参数将传递个命令对应的动作方法;
2、第一个参数对应第一个参数,第二个参数对应第二个参数,依次类推
3、可以使用数组作为参数,数组参数用逗号隔开字符串生成;
4、如果没有足够的参数,会提示出错,除非参数设定了默认值。

namespace console\controllers;

use Yii;
use yii\console\Controller; class HelloController extends Controller
{
/**
* @purpose 控制台命令传入单个参数
* @param $name
*/
public function actionWho($name)
{
echo "Hello $name \n";
} /**
* @purpose 控制台命令传入的参数为数组
* @param $names
*/
public function actionAll(array $names)
{
var_dump($names);
}
}

1、传入单个参数: yii hello/who daicr 

2、传入的参数为数组yii hello/all daicr ,gy

带有选项的控制台命令程序
1、覆盖在 yii\console\Controller::options() 中的方法,这个方法应该返回控制器类的属性列表
2、当运行一个命令时,使用语法为:--optionName=optionValue 来传递给对应的属性,值 optionValue警徽分配到optionName属性
3、自Yii2.0.8之后,可用用 optionAliases() 方法来增加选项别名,从而简化命令中选项的输入

namespace console\controllers;

use Yii;
use yii\console\Controller; class HelloController extends Controller
{
public $rev = ''; // 定义参数 /**
* @purpose 覆盖在 yii\console\Controller::options() 中的方法,返回控制器类的属性列表
* @return array
*/
public function options()
{
return ['rev'];
} /**
* @purpose 增加选项别名(Yii2.0.8之后)
* @return array
*/
public function optionAliases()
{
return ['r' => 'rev'];
} public function actionDemo()
{
if($this->rev == 1){
echo strrev('hello world') . "\n";
}else{
echo "hello world \n";
}
}
}

使用控制台选项: yii hello/demo --r=1

yii创建控制台命令的更多相关文章

  1. Yii通过控制台命令创建定时任务

    假设Yii项目路径为 /home/apps/ 1. 创建文件 /home/apps/protected/commands/crons.php <?php $yii = '/home/apps/f ...

  2. Laravel 5.1 中创建自定义 Artisan 控制台命令实例教程

    1.入门 Laravel通过Artisan提供了强大的控制台命令来处理非浏览器业务逻辑.要查看Laravel中所有的Artisan命令,可以通过在项目根目录运行: php artisan list 对 ...

  3. Laravel创建自定义 Artisan 控制台命令实例教程

    来源:http://laravelacademy.org/post/1374.html 1.入门 Laravel通过Artisan提供了强大的控制台命令来处理非浏览器业务逻辑.要查看Laravel中所 ...

  4. Yii2之控制台命令篇(console)

    控制台命令 Yii 中有一个拥有丰富功能的控制台,它们主要用于创建网站后台处理的任务.在项目根目录下执行相关操作,有意思的事,可以通过 yii 自带的功能,列出当前已有的命令. 1.查看当前项目控制台 ...

  5. 实用Linux控制台命令

    实用Linux控制台命令 screen 例如用Xshell连接 服务器 screen -ls 列出当前用户所有的screen screen 回车直接创建新的screen screen -S scree ...

  6. RocketMQ控制台命令

    本文未完成,有空再补充,不小心发布了,抱歉 Rocket版本:4.3.0 这几天在整RocketMQ,可谓是困难重重,其中关于控制台的命令,网上的都是一半一半的, 所以我打算直接用整一个完整的官方的命 ...

  7. 浏览器控制台命令调试——console

    控制台命令调试时通过浏览器开发工具中的控制台命令嵌入到JavaScript中,输出特定的信息或日志,从而达到调试的目的. 我们常用的Chrome和FireFox,都可以通过F12来打开开发工具. 下面 ...

  8. 控制台命令行API

    js调试系列: 控制台命令行API   上次初步介绍了什么是控制台<js调试系列: 初识控制台>,以及简单的 console.log 输出信息.最后还有两个小问题,我们就当回顾,来看下怎么 ...

  9. 十分钟通过 NPM 创建一个命令行工具

    大过年的,要不要写点代码压压惊?来花十分钟学一下怎么通过 NPM 构建一个命令行工具. 写了一个小 demo,用于代替 touch 的创建文件命令 touchme ,可以创建自带“佛祖保佑”注释的文件 ...

随机推荐

  1. Spring MVC基础知识整理➣Spring+SpringMVC+Hibernate整合操作数据库

    概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibern ...

  2. npm报错没有权限

    在npm install经常会报错没有权限 这个时候需要清除一下缓存 npm cache clean --force

  3. AtCoder Regular Contest 101

    C题是个傻逼题, 一定是先向右,然后停了或者向左走到某一个点(左边同理)模拟就可以了 D题想了一会才想出来 和tjoi那道排序挺像的 二分答案变0/1来做 刚开始写的时候还把自己作为另外一类搞出来 这 ...

  4. ng2tree在ios中无法触发click

    问题描述: 从其他页面跳转回ng2tree的页面时,无法触发节点的click事件 解决方案: 1. 在node_modules中搜索onNodeSeclected方法,修改click为touchend ...

  5. Codeforces 830C Bamboo Partition 其他

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF830C.html 题解 把问题转化成求最大的 $d$ ,满足$$\sum_{1\leq i \leq n}( ...

  6. BZOJ1396 识别子串 字符串 SAM 线段树

    原文链接http://www.cnblogs.com/zhouzhendong/p/9004467.html 题目传送门 - BZOJ1396 题意 给定一个字符串$s$,$|s|\leq 10^5$ ...

  7. 009 spring boot中文件的上传与下载

    一:任务 1.任务 文件的上传 文件的下载 二:文件的上传 1.新建一个对象 FileInfo.java package com.cao.dto; public class FileInfo { pr ...

  8. 有了这些,java IO就不愁了

    IO的总结: java中相对路径和绝对路径的问题: 在web项目中,如果生成的文件前面没有 / 开头的话,表示的是生成的文件在当前项目的根目录下如student.txt在项目中刷新就能看到. 如果是以 ...

  9. 函数模拟sort快排

    设计一个对一维数组进行排序的sort函数,并调用它实现数组排序 思路:函数调用不止调用一个,最主要对函数不熟悉: #include<stdio.h> #define N 10 int ma ...

  10. Activity插件化解决方案

    --摘自<android插件化开发指南> 1.宿主App加载插件中的类 2.最简单的插件化方案就是在宿主的androidmanifest.xml中申明插件中的四大组件 把插件dex合并到宿 ...