我已经创建了一个新的CakePHP 2.0应用程序,并希望运行一个插件的shell。
<?php
// app\Plugin\Tmaker\Vendors\Shells\TmakerShell.php
class TmakerShell extends Shell {
}
但是,从命令行运行Console/cake
时,我看不到它。
请告诉我我错过了什么?
答案 0 :(得分:16)
根据latest documentation,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!');
}
}
由于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!