作为一个工作示例,让我们开始创建上面提到的ContactManager插件。开始,我们将建立我们的插件的基本目录结构。它应该是这样的:
/app
/Plugin
/ContactManager
/Controller
/Component
/Model
/Behavior
/View
/Helper
/Layouts
注意插件文件夹的名称,“ContactManager”。重要的是,这个文件夹的名称相同的插件。
插件文件夹内,你会发现它看起来很像一个CakePHP的应用程序,这基本上就是它是什么。你其实不需要包括任何文件夹的如果你不使用它们。有些插件可能只定义一个组件和行为,在这种情况下,他们可以完全省略视图的目录。
插件也可以有基本的任何其他应用程序的目录,如配置控制台,自由,webroot,等等。
// /app/Plugin/ContactManager/Controller/ContactManagerAppController.php:
class ContactManagerAppController extends AppController {
}
// /app/Plugin/ContactManager/Model/ContactManagerAppModel.php:
class ContactManagerAppModel extends AppModel {
}
如果你忘了定义这些特殊类,CakePHP将把你“失踪控制器”错误,直到你已经这么做了。
请注意,创建插件的过程可以大大简化使用蛋糕外壳。
为了烤一个插件请使用以下命令:
user@host$ cake bake plugin ContactManager
现在你可以烘烤使用相同的约定,适用于您的应用程序的其余部分。例如,烘焙控制器:
user@host$ cake bake controller Contacts --plugin ContactManager