0
- 我在CakePHP 2.6.3中有一個位於
PluginName/Console/Command/FooShell.php
的shell。 - 我已經在我的應用程序的
bootstrap.php
中通過加載了此插件。 - 當該插件在
ROOT/app_name/Plugin
,我運行PluginName.foo
,殼工程。 - 當該插件是
ROOT/plugins
我運行相同的命令,我得到一個錯誤:
C:\xampp\htdocs\site_name\app_name>php Console/cake.php -app app_name PluginName.foo
錯誤:
Warning Error: include(C:\xampp\htdocs\site_name\app_name\Plugin\PluginName\Console\Command\FooShell.php): failed to open stream: No such file or directory in [C:\xampp\htdocs\site_name\lib\Cake\Core\App.php, line 547]
Warning Error: include(): Failed opening 'C:\xampp\htdocs\site_name\app_name\Plugin\PluginName\Console\Command\FooShell.php' for inclusion (include_path='C:\xampp\htdocs\site_name\lib;.;C:\xampp\php\PEAR') in [C:\xampp\htdocs\site_name\lib\Cake\Core\App.php, line 547]
Error: Shell class FooShell could not be found.
#0 C:\xampp\htdocs\site_name\lib\Cake\Console\ShellDispatcher.php(200): ShellDispatcher->_getShell('PluginName.back...')
#1 C:\xampp\htdocs\site_name\lib\Cake\Console\ShellDispatcher.php(66): ShellDispatcher->dispatch()
#2 C:\xampp\htdocs\site_name\app_name\Console\cake.php(33): ShellDispatcher::run(Array)
#3 {main}
出於某種原因,CakePHP很適合這個插件在ROOT/plugins
當它提供實際的網頁時,但在控制檯中引發錯誤。在shell docs或plugin docs
沒有明確地說,有什麼關於ROOT/plugins
使用插件不同,但該目錄是如何使用的討論是從插件和folder structure docs顯眼。 (我假設,因爲這意味着你應該以同樣的方式實現插件,而不管他們在哪個目錄中。)
我在做這個錯誤嗎?
這奏效了,在那個噁心的感覺,當你修改核心文件,你得到的費用。謝謝! – 2015-03-31 21:40:39
你應該也可以在'ROOT/app_name/Config/bootstrap.php'中做同樣的事情,它是你的應用程序的一部分,而不是Cake核心。這是最早加載的文件之一,所以只要你的'App :: build()'聲明在你的'CakePlugin :: load()'之前,它應該可以正常工作。 – beporter 2015-04-08 15:23:24