控制台命令
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