这不是关于如何构建WordPress插件的问题。相反,如果有的话,什么指南可以应用于如何组合任何插件的文件体系结构。
其他一些编程语言或库具有组织目录和文件的受控方式。有时,这很烦人,并且突显了PHP提供的自由,但是在另一方面,WordPress插件以其作者确定的任何方式组合在一起。
没有一个正确的答案,但是我的希望是完善我和其他人构建插件的方式,以使它们对其他开发人员更友好地进行剖析,更易于调试,更易于导航,并且可能更加高效。
最后一个问题:什么你认为是组织的一个插件的最佳方式?
以下是一些示例结构,但绝不是详尽的列表。随时添加自己的建议。
假定默认结构
/wp-content/plugins/my-pluginmy-plugin.php
模型视图控制器(MVC)方法
/wp-content/plugins/my-plugin/controllerController.php
/modelModel.php
/viewview.php
my-plugin.php
MVC的三个部分:
- 该模型与数据库交互,查询和保存数据,并包含逻辑。
- 该控制器将包含模板标签和功能视图将利用。
- 该视图负责显示由控制器构造的模型提供的数据。
按类型组织
/wp-content/plugins/my-plugin/adminadmin.php
/assetscss/images/
/classesmy-class.php
/langmy-es_ES.mo
/templatesmy-template.php
/widgetsmy-widget.php
my-plugin.php
WordPress插件样板
在Github上可用
/wp-content/plugins/my-plugin/admin/css/js/partialsmy-plugin-admin.php
/includesmy_plugin_activator.phpmy_plugin_deactivator.phpmy_plugin_i18n.phpmy_plugin_loader.phpmy_plugin.php
/languagesmy_plugin.pot
/public/css/js/partialsmy-plugin-public.php
LICENSE.txtREADME.txtindex.phpmy-plugin.phpuninstall.php
松散的组织方法
/wp-content/plugins/my-plugincss/images/js/my-admin.phpmy-class.phpmy-template.phpmy-widget.phpmy-plugin.php
css/,images/和js/将是styles/,images/和scripts/。