2011-08-08 32 views
5

我创建了一个新的CakePHP 2.0应用程序,并且想要运行插件的外壳。在cakephp 2.0中运行插件的外壳

<?php 
// app\Plugin\Tmaker\Vendors\Shells\TmakerShell.php 
class TmakerShell extends Shell { 
} 

但是,运行在命令行Console/cake当我无法看到它。

请告诉我我错过了什么?

回答

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需要你手动加载插件,还需要通过在最后一行添加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! 
+0

如何在TmakerShell中使用相同的插件模型。例如,我在app/Plugin/Tmaker/Model文件夹中的模型名称为abc.php,现在我想在TmakerShell中使用此模型。如何做到这一点? –

+0

@PardeepSingh你可能需要使用插件语法:'public $ uses = array('Tmaker.Abc');' - http://book.cakephp.org/2.0/en/appendices/glossary.html#term-plugin -syntax – deizel

+0

这就是在做什么,但得到错误:插件Tmaker无法找到。 但是当我用-app/path/app运行蛋糕时,那么命令没有得到执行。如果我使用-app选项,则不会输出蛋糕。 –