Yii2之控制檯命令篇(console)

控制檯命令

Yii 中有一個擁有豐富功能的控制檯,它們主要用於建立網站後臺處理的任務。在項目根目錄下執行相關操做,有意思的事,能夠經過 yii 自帶的功能,列出當前已有的命令。php

一、查看當前項目控制檯已有的腳本命令

正如你在截圖中看到,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下寫的控制器,也能夠經過上面的方式打印並展現在其中)。好比下面web

對應着下面:redis

- log                                定時執行清除一個月以前的全部日誌記錄
    log/init                         清除日誌

二、接着,咱們來調用一下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緩存

三、建立一個本身的控制檯命令

<?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);
    }
}

咱們就能夠在項目根目錄下執行上面建立的命令yii

[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

四、總結

控制檯命令能夠實現不少功能,好比數據庫遷移、定時任務、清除應用臨時緩存等諸多自動化維護的功能。在實際項目開發中仍是會常常用到的。

參考資料

相關文章
相關標籤/搜索