YII2中使用控制台命令
有些时候我们需要通过crontab在后台跑一些定时脚本,这时候就需要用到控制台命令了。
我们在commands目录下创建TestController.php,当然脚本的位置是可以随意指定的,只需要在config/console.php中配置好就行。
- $config = [
- 'controllerNamespace' => 'app\commands',
- ];
TestController.php代码如下:
- <?php
- namespace app\commands;
- use YII;
- use yii\console\Controller;
- use yii\console\ExitCode;
- use yii\helpers\Console;
- //注意控制台程序必须继承自yii\console\Controller
- class TestController extends Controller
- {
- public $param1;
- public $param2;
- public $param3;
- //指定用于控制台的选项
- public function options($actionID)
- {
- return [
- 'param1',
- 'param2',
- 'param3',
- ];
- }
- //如果这些选项名称太长,可以取个短的别名
- public function optionAliases()
- {
- return [
- 'p1' => 'param1',
- 'p2' => 'param2',
- 'p3' => 'param3',
- ];
- }
- // 定义控制台运行的方法
- // yii test/test1 -p1=hello -p2=world -p3=!!!
- public function actionTest1()
- {
- echo $this->param1, ' ', $this->param2, ' ', $this->param3, "\n";
- return ExitCode::OK;
- }
- // 我们可以获取控制台传过来的参数
- // 注意,函数第一个参数,对应控制台传过来的第一个参数,依次类推,不要把顺序搞错了。
- // yii test/test2 aa bb cc
- public function actionTest2($p1 = '', $p2 = '', $p3 = '')
- {
- echo $p1, ' ', $p2, ' ', $p3, "\n";
- return ExitCode::OK;
- }
- // 当然控制台也可以一次传多个数据过来,这就需要把函数参数声明为一个array
- // 控制台传参时就需要把传递的数据通过逗号连接起来,YII2通过处理变成数组
- // yii test/test3 aa,bb,cc
- public function actionTest3(array $arr)
- {
- echo implode('--', $arr), "\n";
- return ExitCode::OK;
- }
- // 控制台格式和颜色的设置
- // yii test/test4
- public function actionTest4()
- {
- //用于控制台输出
- $this->stdout('hello', Console::FG_RED);
- $this->stdout('world', Console::FG_GREEN);
- $this->stdout('!!!', Console::FG_BLUE);
- echo "\n";
- $hello = $this->ansiFormat('hello', Console::FG_RED);
- $world = $this->ansiFormat('world', Console::FG_GREEN);
- $sigh = $this->ansiFormat('!!!', Console::FG_BLUE);
- echo $hello, ' ', $world, ' ', $sigh, "\n";
- return ExitCode::OK;
- }
- }
运行结果如下:
注意,windows下的命令行不会显示颜色。
YII2中使用控制台命令的更多相关文章
- Pycharm:在Pycharm中使用控制台命令
最下方跟Console同行的Terminal,其中输入指令就相当于在cmd命令行窗口输入指令
- YII2中日志的配置与使用
YII2中给我们提供了非常方便的日志组件,只需要简单配置一下就可以使用. 我们在config/web.php中配置如下: return [ //log必须在bootstrap期间就被加载,便于及时调度 ...
- YII2中使用RBAC对模块,控制器,方法的权限控制以及规则的使用
在使用YII2中自带的RBAC时,需要先配置config/web.php: return [ // ... 'components' => [ 'authManager' => [ 'cl ...
- yii2中commands的简单应用
class HelloController extends Controller { /** * This command echoes what you have entered as the me ...
- yii2中如何使用modal弹窗之基本使用
作者:白狼 出处:http://www.manks.top/yii2_modal_baseuse.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...
- 【每日一linux命令6】命令中的命令
许多命令在执行后,会进入该命令的操作模式,如 fdisk.pine.top 等,进入后我们必须要使用该 命令中的命令,才能正确执行:而一般要退出该命令,可以输入 exit.q.quit 或是按[Ctr ...
- Yii2中多表关联查询(join、joinwith)
我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_name ...
- PHP在yii2中封装SuperSlide 幻灯片编写自己的SuperSlideWidget的例子
因为近期给朋友公司做个门户网站,把荒置了6.7年的PHP又重新拾起,发现PHP这些年兴旺多了,很多新的东西看的不明不白,研究了几个框架ZendFramework.thinkphp.Symfony.yi ...
- sublime text2在windows中以命令行启动
sublime text2在windows中以命令行启动 把执行文件添加到PATH中即可,如图: 如果你和我一样习惯了mac下的简写subl,那么需要在程序目录中新建一个批处理文件subl.bat ...
随机推荐
- suse 关于使用 /etc/init.d/boot.local的问题
最近看了一个问题,有同事在 suse环境下的/etc/init.d/boot.local 中,增加了一行脚本. 该脚本的简单大意如下: #!/bin/bash ] do ] then echo &qu ...
- 移动端取消touch高亮效果
在做移动端页面时,会发现所有a标签在触发点击时或者所有设置了伪类 :active 的元素,默认都会在激活状态时,显示高亮框,如果不想要这个高亮,那么你可以通过css以下方法来禁止: .xxx{ -we ...
- Hibernate学习笔记1.2(Annotation版本的Helloworld)
hibernate 3.0之后开始支持Annotation 接着1.1的项目 首先 需要创建model Teacher.java. package com.hw.hibernate.model; pu ...
- Python自动化运维开发实战 三、python文件类型
导语: python常用的有3种文件类型 1. 源代码 py 2. 字节代码 pyc 3. 优化代码 pyo 源代码: python源代码的文件以”py"为扩展名,由python程序解释,不 ...
- Oracle11g服务详细介绍
Oracle11g服务详细介绍及哪些服务是必须开启的? Oracle ORCL VSS Writer Service Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Se ...
- python中的文件的读写
python中的 w+ 的使用方法:不能直接 write() 后,在进行读取,这样试读不到数据的,因为数据对象到达的地方为文件最后,读取是向后读的,因此,会读到空白,应该先把文件对象移到文件首位. f ...
- SpringMVC Shiro与filterChainDefinitions
SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能. 第一步:配置web.xml <!-- 配置Shiro过滤器,先让Shiro ...
- js 创建对象的几种方法
1. 使用object创建 var person = new Object(); person.name = "Tom"; person.age = "29"; ...
- http4e eclipse plugin 插件介绍
感谢作者的分享: http://blog.csdn.net/wiker_yong/article/details/10066905 以及作者的破解jar.目前看网站留言说已经git了. 官网链接地址: ...
- SpringMVC包括哪些组件
1 映射器 1.1作用:Handlermapping根据url查找Handler 2 适配器 2.1作用:HandlerAdapter执行Handler 3 解析器 3.1作用:View ...