console command
,例如./yii hello/world
。
我正在使用yii-app-basic
。
我想要的不是在目录commands/
中创建控制台命令,而是在module
中。
答案 0 :(得分:7)
1)您的模块应该实现BootstrapInterface :
class Module extends \yii\base\Module implements \yii\base\BootstrapInterface
{
public function bootstrap($app)
{
if ($app instanceof \yii\console\Application) {
$this->controllerNamespace = 'app\modules\my_module\commands';
}
}
}
2)在模块commands
文件夹中创建控制台控制器:
namespace app\modules\my_module\commands;
class ConsoleController extends \yii\console\Controller
{
public function actionIndex()
{
echo "Hello World\n";
}
}
3)将您的模块添加到您的应用控制台配置config/console.php
:
'bootstrap' => [
// ... other bootstrap components ...
'my_module',
],
'modules' => [
// ... other modules ...
'my_module' => [
'class' => 'app\modules\my_module\Module',
],
],
4)您现在可以使用命令:
yii my_module/console/index
答案 1 :(得分:4)
这是一个很好的Tutorial和Discussion。
按照教程中的以下步骤进行操作:
1) Create a new module in your application.
2) Edit the Module.php.
3) Create your folder and command inside your module.
4) Add your module to app configurations.