2011-08-08 50 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選項,則不會輸出蛋糕。 –