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 ...
随机推荐
- [洛谷P3292] [SCOI2016]幸运数字
洛谷题目链接:[SCOI2016]幸运数字 题目描述 A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城 ...
- php检测文件编码方法[非完美]
关于文件编码的检测,百度一下一大把都是,但是确实没有能用的. 很多人建议 mb_detect_encoding 检测,可是不知为何我这不成功,什么都没输出. 看到有人写了个增强版,用 BOM 判断的, ...
- Document对象中的一些重要的属性和方法(笔记)
Document对象:每一个web浏览器窗口.标签页和框架由一个window对象所表示.每个window对象都有一个document属性引用的是Document对象,它是一个巨大的API中的核心对象, ...
- HDU 4521 小明系列问题——小明序列 (线段树 单点更新)
题目连接 Problem Description 大家都知道小明最喜欢研究跟序列有关的问题了,可是也就因为这样,小明几乎已经玩遍各种序列问题了.可怜的小明苦苦地在各大网站上寻找着新的序列问题,可是找来 ...
- 系统学习(javascript)_基础(数据类型之间的转换)
在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用javascript弱变量类型转换). 强制转换: 利用js提供的函数parseInt(),parseFloat(),Number( ...
- Servlet笔记3--Servlet生命周期
Servlet生命周期:
- aarch64_c2
collectd-5.7.2-5.fc26.aarch64.rpm 2017-06-18 21:17 634K fedora Mirroring Project collectd-amqp-5.7.2 ...
- TableView 的那些坑
1. 分割线填满cell宽度, 并且设置分割线的颜色 1.1 利用系统的分割线填充 1.1.1 tableView 设置如下属性 // 给tableView设置如下属性值 tableView.layo ...
- idea开发工具下载安装教程
我用这款工具主要用于java开发 在安装这个工具之前需要配置java的环境 java的jdk环境配置 jdk:1.8 jdk官网下载链接 --->点我 进入之后,下拉 选择 jdk1.8版本 ...
- mybatis比hibernate处理速度快的原因
mybatis:是面向结果集的.当要展示的页面需要几个字段时,springmvc会提供这几个字段并将其拼接成结果集,在转化为相应的对象. hibernate:是面向对象的.要展示的页面需要某些字段时, ...