2015-06-25 39 views
2

我感動的工作插件從/plugins/pluginname directory to /vendor/myname/pluginname蛋糕PHP 3的插件的控制器不可見

URL上,我稱之爲插件控制器

http://domain.local/pluginname/index

從第一個目錄移動到另一個之前,插件是按預期工作。我將插件移動到新目錄,使其可用於其他蛋糕PHP應用程序。

插件由作曲家安裝。

爲什麼我有消息

"Error: Controller class Index could not be found.". All controllers from plugin are not visible on app, throws the same error. Error is thrown from line 79 from file \vendor\cakephp\cakephp\src\Routing\Dispatcher.php

在主要的bootstrap.php文件,我把這個行:

Plugin::load('MyName/PluginName', ['bootstrap' => false, 'routes' => true]);

爲什麼插件在供應商目錄在我的情況是不工作?

cakePHP3_controller_not_found_error

+0

如果插件是由Composer安裝的,您應該**不要移動它。你應該解釋你爲什麼這樣做,爲什麼你不能手動安裝插件。 –

回答

0

如果插件是由作曲家安裝,不要動它。

它是否安裝在插件或供應商文件夾由插件的作者決定。

如果需要完全加載插件在你的引導,只需使用

Plugin::load('PluginName', ['bootstrap' => false, 'routes' => true]); 

http://book.cakephp.org/3.0/en/plugins.html#plugin-configuration

如果作曲家將其放在供應商或插件文件夾它只是工作不管。

最重要的是,離開它的作者的意圖是要在文件夾中。

最後,檢查你的插件是適合的CakePHP 3.X

至於網址,你應該預料到使用/插件名稱/控制器/動作

http://book.cakephp.org/3.0/en/plugins.html#plugin-controllers我引用

If you want to access what we’ve got going thus far, visit /contact-manager/contacts

0

你可以嘗試設置自動加載變量true.在bootstrap.php中添加下面的代碼,清除緩存然後檢查。 Plugin::load('PluginName', ['autoload' => true]);