5
我创建了一个新的CakePHP 2.0应用程序,并且想要运行插件的外壳。在cakephp 2.0中运行插件的外壳
<?php
// app\Plugin\Tmaker\Vendors\Shells\TmakerShell.php
class TmakerShell extends Shell {
}
但是,运行在命令行Console/cake
当我无法看到它。
请告诉我我错过了什么?
我创建了一个新的CakePHP 2.0应用程序,并且想要运行插件的外壳。在cakephp 2.0中运行插件的外壳
<?php
// app\Plugin\Tmaker\Vendors\Shells\TmakerShell.php
class TmakerShell extends Shell {
}
但是,运行在命令行Console/cake
当我无法看到它。
请告诉我我错过了什么?
根据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需要你手动加载插件,还需要通过在最后一行添加CakePlugin::loadAll();
或CakePlugin::load('Tmaker');
来更新app/Config/bootstrap.php
。
然后,您应该可以从命令行访问您的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!
如何在TmakerShell中使用相同的插件模型。例如,我在app/Plugin/Tmaker/Model文件夹中的模型名称为abc.php,现在我想在TmakerShell中使用此模型。如何做到这一点? –
@PardeepSingh你可能需要使用插件语法:'public $ uses = array('Tmaker.Abc');' - http://book.cakephp.org/2.0/en/appendices/glossary.html#term-plugin -syntax – deizel
这就是在做什么,但得到错误:插件Tmaker无法找到。 但是当我用-app/path/app运行蛋糕时,那么命令没有得到执行。如果我使用-app选项,则不会输出蛋糕。 –