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