Yii2中Console定時任務

項目開發中經常會需要使用到定時任務,YIi2中有一個功能豐富的控制檯命令,今天主要介紹一下如何使用控制檯命令編寫以及運行定時任務。

一、入口文件

和 web 程序 index.php 入口文件一樣,控制檯命令也有一個入口文件,根目錄下的 yii 文件。
可以在入口文件下運行:php yii
在這裏插入圖片描述

二、定時任務編寫

下載 Yii 框架後,可以看到有個 console 目錄,裏面有完整的目錄結構:配置文件、控制器、模型、日誌等。
在這裏插入圖片描述
1、新建 TestController.php 文件
在這裏插入圖片描述
這時再運行 php yii 命令可以看到末尾多了有關 test 控制器下寫的 action 方法,直接運行這個命令就可以了。
在這裏插入圖片描述
2、運行 php yii test/test-console
在這裏插入圖片描述

三、定時任務傳參

上面已經介紹瞭如何編寫定時任務,接下來介紹一下如何傳參:
1、修改 TestController.php 文件

<?php
namespace console\controllers;

use yii\console\Controller;

class TestController extends Controller
{

    /**
     * @var 參數1
     */
    public $param1;

    /**
     * @var 參數2
     */
    public $param2;

    /**
     * 設置參數
     * @param string $actionID
     * @return array|string[]
     */
    public function options($actionID)
    {
        return ['param1', 'param2'];
    }


    /**
     * 測試腳本
     */
    public function actionTestConsole()
    {
        echo $this->param1 . PHP_EOL;
        echo $this->param2 . PHP_EOL;
    }
}

2、上述代碼指定了兩個參數 param1、param2,通過命令 php yii (控制器)/(方法名) --(參數1)=(參數值) ==(參數2)=(參數值) … 執行:php yii test/test-console --param1=hello --param2=world
在這裏插入圖片描述

四:參數設置別名

1、傳參時可以簡化參數,設置別名:

<?php
namespace console\controllers;

use yii\console\Controller;

class TestController extends Controller
{

    /**
     * @var 參數1
     */
    public $param1;

    /**
     * @var 參數2
     */
    public $param2;

    /**
     * 設置參數
     * @param string $actionID
     * @return array|string[]
     */
    public function options($actionID)
    {
        return ['param1', 'param2'];
    }


    /**
     * 參數設置別名
     * @return array
     */
    public function optionAliases()
    {
        return ['m1' => 'param1', 'm2' => 'param2'];
    }


    /**
     * 測試腳本
     */
    public function actionTestConsole()
    {
        echo $this->param1 . PHP_EOL;
        echo $this->param2 . PHP_EOL;
    }
}

2、執行命令:php yii test/test-console -m1=hello -m2=world
在這裏插入圖片描述注意:設置別名後參數之間使用一個橫槓連接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章