在cakephp 2.0中运行插件的shell

bau*_*r79 5 shell plugins cakephp cakephp-2.0

我创建了一个新的CakePHP 2.0应用程序,并希望运行一个插件的shell.

<?php
// app\Plugin\Tmaker\Vendors\Shells\TmakerShell.php
class TmakerShell extends Shell {  
}
Run Code Online (Sandbox Code Playgroud)

但是,Console/cake从命令行运行时我看不到它.

请告诉我我错过了什么?

dei*_*zel 17

根据最新文档,shell的路径已更改为app/Console/Command/.

将您的shell移动到以下位置:( app/Plugin/Tmaker/Console/Command/TmakerShell.php不确定插件目录名称是否在CakePHP 2.0中是驼峰式的,但它似乎无论哪种方式都有效.)

<?php
class TmakerShell extends Shell {
    public function main() {
        $this->out('It works!');
    }
}
Run Code Online (Sandbox Code Playgroud)

由于CakePHP 2.0要求您手动加载插件,您还需要app/Config/bootstrap.php通过添加CakePlugin::loadAll();或更新CakePlugin::load('Tmaker');到最后一行来更新.

然后,您应该能够从命令行访问您的shell.在Windows中看起来像这样:

C:\xampplite\htdocs\cake2\app>..\lib\Cake\Console\cake Tmaker.tmaker

Welcome to CakePHP v2.0.0-beta Console
---------------------------------------------------------------
App : app
Path: C:\xampplite\htdocs\cake2\app\
---------------------------------------------------------------
It works!
Run Code Online (Sandbox Code Playgroud)