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

正如你在截图中看到,Yii 中已经定义了一组默认情况下可用的命令:
- AssetController - 允许合并和压缩你的 JavaScript 和 CSS 文件。 在 资源 - 使用 asset 命令 一节可获取更多信息。
- CacheController - 清除应用程序缓存。
- FixtureController - 管理用于单元测试 fixture 的加载和卸载。 这个命令的更多细节在 Testing Section about Fixtures.
- HelpController - 提供有关控制台命令的帮助信息, 这是默认的命令并会打印上面截图所示的输出。
- MessageController - 从源文件提取翻译信息。 要了解更多关于这个命令的用法,请参阅 I18N 章节.
- MigrateController - 管理应用程序数据库迁移。 在 数据库迁移章节 可获取更多信息。
- ServeController - Allows you run PHP built-in web server.
除了上面展示出的yii自带的控制台命令,其余的命令就是你自己在console下实现的脚本命令(就是你在console下写的控制器,也可以通过上面的方式打印并展示在其中)。比如下面

对应着下面:
- log 定时执行清除一个月之前的所有日志记录
log/init 清除日志
2、接着,我们来调用一下Yii自带的清除应用程序缓存这一命令功能
首先我们查看一下当前应用程序有哪些缓存key

发现有两个应用缓存,这是因为我们在
components里配置了这两个缓存应用
return [
'components' => [
//默认缓存
'cache' => [
'class' => 'yii\redis\Cache',
'redis' => [
'hostname' => '192.168.23.32',
'port' => 6379,
'database' => 0
],
],
//数据缓存
'cache01' => [
'class' => 'yii\redis\Cache',
'redis' => [
'hostname' => '192.168.23.32',
'port' => 6379,
'database' => 1
],
],
]
]
现在我们清除其中的cache01

3、创建一个自己的控制台命令
<?php
/**
* Created by PhpStorm.
* User: 168
* Date: 2017/10/23
* Time: 14:00
*/
namespace console\controllers;
use common\models\Redis;
use yii\console\Controller;
/**
* 小demo
* Class DemoController
* @package console\controllers
*/
class DemoController extends Controller
{
/**
* 添加缓存
*/
public function actionAdd()
{
$hashKey = 'caiyu';
$field = 'nine';
$val = 9;
Redis::hsetCache($hashKey, $field, $val, $expire = 0, $selectDb=0);
}
/**
* 删除缓存
*/
public function actionDel()
{
$hashKey = 'caiyu';
//
$field = ['nine', 'six'];
Redis::hdelCache($hashKey, $field, 0);
}
}
我们就可以在项目根目录下执行上面创建的命令
[root@mopon-v-dev-1 daoyan_yt]# /usr/bin/php yii demo/add
[root@mopon-v-dev-1 daoyan_yt]# /usr/bin/php yii demo/del
4、总结
控制台命令可以实现很多功能,比如数据库迁移、定时任务、清除应用临时缓存等诸多自动化维护的功能。在实际项目开发中还是会经常用到的。
参考资料
Yii2之控制台命令篇(console)的更多相关文章
- 浏览器控制台命令调试——console
控制台命令调试时通过浏览器开发工具中的控制台命令嵌入到JavaScript中,输出特定的信息或日志,从而达到调试的目的. 我们常用的Chrome和FireFox,都可以通过F12来打开开发工具. 下面 ...
- [UE4]游戏中服务器切换地图,控制台命令Execute console Command
Execute console Command ServerTravel {地图名称}?listen 在服务器执行了这个命令,所有连接到该服务器的客户端都会跟着服务器同时切换到指定的地图. 1.创建一 ...
- yii创建控制台命令
创建控制台命令程序1.控制台命令继承自 yii\console\Controller控制器类2.在控制器类中,定义一个或多个动作,动作与控制台子命令相对应3.在动作方法中实现业务需求的代码 运行控制台 ...
- YII2中使用控制台命令
有些时候我们需要通过crontab在后台跑一些定时脚本,这时候就需要用到控制台命令了. 我们在commands目录下创建TestController.php,当然脚本的位置是可以随意指定的,只需要在c ...
- 小谈chrome调试命令:console.log的使用
相信从事前端开发的您,一定不会陌生Mozilla五星级推荐的一款插件:firebug,它是如此强大,乃至于我们可以很方便地调试DHTML的近乎所有元素.而在它深邃的机体里,还存有一个命令:consol ...
- 控制台命令行API
js调试系列: 控制台命令行API 上次初步介绍了什么是控制台<js调试系列: 初识控制台>,以及简单的 console.log 输出信息.最后还有两个小问题,我们就当回顾,来看下怎么 ...
- Laravel 5.1 中创建自定义 Artisan 控制台命令实例教程
1.入门 Laravel通过Artisan提供了强大的控制台命令来处理非浏览器业务逻辑.要查看Laravel中所有的Artisan命令,可以通过在项目根目录运行: php artisan list 对 ...
- Kibana控制台(Dev Tools) Console
控制台插件提供一个用户界面来和 Elasticsearch 的 REST API 交互.控制台有两个主要部分: editor ,用来编写提交给 Elasticsearch 的请求: response ...
- 使用powershell监控命令行console程序并在停止时启动
有一种C#命令行console程序,为了能看到console台的输出所以不能做成服务.为了防止这些程序自己死掉,使用powershell监控程序并重启 #利用程序名来进行重启if (!(get-pro ...
随机推荐
- Seven Techniques for Data Dimensionality Reduction
Seven Techniques for Data Dimensionality Reduction Seven Techniques for Data Dimensionality Reductio ...
- [转载]学习C语言基本思路与参考书籍
http://zhuanlan.zhihu.com/linjr/19694823 计算机行业发展非常快,大学里的教育基本都跟不上实际的社会需求.如果你所在的学校还在指定大家使用谭浩强的教材,或使用VC ...
- 让vcmi支持英雄无敌3中文版
Table of Contents 1 Hack 日志 2 Changes 3 Install by compiling 4 reply of Ivan 1 Hack 日志 8月22日开始动手修改改v ...
- laravel new xxx 安装laravel 慢的问题
问题:使用官方文档上安装 laravel laravel new xxx 安装速度奇慢无比,设置了composer 全局镜像也没有用 composer config -g repo.packagist ...
- 产品排序 product
评测传送门 [问题描述] 你是一个公司的员工,你会按时间顺序受到一些产品的订单,你需要用一个栈来改变这些订单的顺序(每个产品都必须入栈和出栈一次). 按初始顺序,每次可以将一个产品入栈,或将栈顶产品弹 ...
- json字符串与json对象转换
从网上找的几种常用的转换方法,测试结果如下: 1.json字符串——>json对象 /* test 1 */ var str = '{"a":1,"b": ...
- 【译】第七篇 Integration Services:中级工作流管理
本篇文章是Integration Services系列的第七篇,详细内容请参考原文. 简介在上一篇文章,我们创建了一个新的SSIS包,学习了SSIS中的脚本任务和优先约束,并检查包的MaxConcur ...
- P1879 [USACO06NOV]玉米田Corn Fields (状压dp入门)
题目链接: https://www.luogu.org/problemnew/show/P1879 具体思路: 我们可以先把所有合法的情况枚举出来,然后对第一行判断有多少种情况满足,然后对于剩下的行数 ...
- boost 时间
利用boost来获取当前时间又方便快捷,还不用考虑跨平台的问题. 1. 输出YYYYMMDD [cpp] view plaincopy #include <boost/date_time/gre ...
- python3之线程与进程
1.CPU运行原理 我们都知道CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列.CPU从逻辑上可以划分成3个模块,分别是控制单元.运算单元和存储单元,这三部分由CPU内 ...