将CakePHP插件排列到子文件夹中


Arrange CakePHP plugins into subfolders

我注意到有些人提到了对控制器和模型的类似请求,但我一直找不到任何关于在子文件夹中排列插件的信息。

我想要。。。

/app
    /Plugin
        /Modules
            /Form
                /Controller
            /Gallery
                /Controller
        /SomeStandardPlugin
            /Controller

这样我就可以将所有CMS功能特定的插件分开。

我试过:

CakePlugin::load('Form');
CakePlugin::load('Modules/Form');
CakePlugin::load('../Plugin/Modules/Form');

无论我尝试上面的哪一个,当我尝试在其中一个插件中使用控制器时,它都会说:

Error: FormsController could not be found.

Error: Create the class FormsController below in file: app'Controller'FormsController.php

(如果我不想把它放在插件中,那就好了!)

《烹饪书》也没有提到任何关于它的内容——是它不受支持,还是我错过了什么?

仅供参考:我使用的是CakePHP v2.2.3

CakePlugin::load的参数不是路径

此函数的第一个参数是插件的名称。这是加载插件的正确方法:

CakePlugin::load('Name');

但只有当插件存在于使用App::build 配置的位置时,它才会工作

因此,要将插件组织到子文件夹中,有必要声明包含插件的所有路径:

// append app/Plugin/Modules to the path to look for plugins
App::build(array(
    'Plugin' => array(
        APP . 'Plugin/Modules'
     )
));