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 ...
随机推荐
- Nginx基础配置指令
nginx.conf文件的结构 ... #全局块 events{ #events块 ... } http{ #http块 ... #http全局块 server{ #server块 ... #serv ...
- AT1983 BBQ Hard
洛谷题目链接:BBQ Hard 题意翻译 有 n 个数对 \((A_i; B_i)\),求出 \[\sum_{i=1}^{n}\sum_{j=i + 1}^{n}{a_i+b_i+a_j+b_j ...
- 京东全链路压测军演系统(ForceBot)架构解密
摘要:全链路压测是应对电商大促容量规划最有效的手段,如何有效进行容量规划是其中的架构关键问题.京东在全链路压测方面做过多年尝试,本文转载京东商城基础平台技术专家文章,介绍其最新的自动化压测 Force ...
- SQL分页数据重复问题
对于关系数据库来说,直接写SQL拉数据在列表中显示是很常用的做法.但如此便带来一个问题:当数据量大到一定程度时,系统内存迟早会耗光.另外,网络传输也是问题.如果有1000万条数据,用户想看最后一条,这 ...
- css文字超出显示省略号
单号: white-space:nowrap; overflow:hidden; text-overflow:ellipsis; 多行: word-break: break-all; text-ove ...
- 生死相依:说说JQuery中die()、live()详解[翻译]
一个web前端工程师,应该知道jquery的.live()函数,知道它是做什么用的,但是不知它是怎么样工作的,使用起来也是不得得心应手的,甚至也没听说过.die()(去掉bind事件).即使你能熟悉这 ...
- 20155336 2016-2017-2《JAVA程序设计》第七周学习总结
20155336 2016-2017-2<JAVA程序设计>第七周学习总结 教材学习内容总结 第十三章 认识时间与日期 格林威治标准时间:简称GMT时间,参考格林威治皇家天文台的标准太阳时 ...
- HDU 2079 选课时间 组合题
解题报告:最多有8种学分的课,然后每种学分的课最多有10门,问要选学分为n的课一共有多少种选法,注意学分相同的课之间没有区别. 这题暴力可过,我用了8层循环,就简单了.听说可以用母函数,但没学过,看一 ...
- HDU 2095 find your present (2) 动态链表
解题报告:输入一个n,后面紧跟着输入n个数,输入的这n个数中,除了有一个数的个数为奇数外,其它的数的个数都是偶数个,现在要你找出这个个数为奇数的这个数. 看起来好像很简单的样子,不过,这题的重点不在这 ...
- 85.YCbCr与YUV的区别
yuv色彩模型来源于rgb模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域. YCbCr模型来源于yuv模型,应用于数字视频,ITU-R BT.601 recommendation 通过 ...