如何在 Yii2 中创建控制台命令(rake 任务)?

How do I create a console command (rake task) in Yii2?

我使用 Gii 创建了这个文件,但我无法从控制台执行它!

controllers/KWController.php
<?php

namespace app\controllers;

class KWController extends \yii\console\Controller
{
    public function actionIndex()
    {
        return $this->render('index');
    }

}

当我尝试 运行 它时,它失败了。

$ yii kw
Error: Unknown command "kw".

$ yii Kw
Error: Unknown command "Kw".

$ yii kW
Error: Unknown command "kW".

$ yii kw/index
Error: Unknown command "kw/index".

指南没有帮助,因为一切都井井有条。

http://www.yiiframework.com/doc-2.0/guide-tutorial-console.html

我不得不将文件放在 commands/ 路径中并更改名称空间。奇怪,文档根本没有提到这一点。为什么 Gii 把它放在那里?

如果您使用 yii2-app-basic 模板,控制台命令将作为控制器进入 commands 目录。

如果您使用的是 yii2-app-advanced 模板,则控制台命令位于 console\controllers 文件夹中。