WordPress插件是抽象应用程序中的‘库’吗?

时间:2011-05-31 作者:Damien Roche

这是我的想法,我可能在给自己挖一个大洞。这就是我在这里的原因;)

我希望开发一个复杂的应用程序,但我希望这个应用程序作为一个独立的脚本和wordpress插件同时运行。以后我可能会开发成Joomla插件等等。

我的想法是开发一个抽象的定制框架,然后通过扩展这个框架来实现定制功能。这有意义吗?

这么说吧WP_Plugin 扩展My_Engine, 然后插件类将作为工厂来管理WordPress中的自定义功能/lib/wordpress/ 目录

我真的不想重复我自己,我肯定会生产多个版本的应用程序。

有什么想法吗?

2 个回复
SO网友:Scott

我要做的是构建独立的应用程序,但在其中构建一个防弹API,允许其他人和您自己利用应用程序的强大功能。

无论您以何种方式看待它,每次访问不同的CMS时都会有相当多的编码要做,因为它们都有不同的处理方式。如果你的应用程序有很好的API控件,那么其他人就可以为你不知道存在的其他CMS制作自己的模块,从而不会将你限制在WordPress和Joomla这样的应用程序中。

SO网友:Jan Fabry

通过子类化进行扩展是可能的,但它可能会限制您的可能性。也许您希望允许第三方开发人员扩展My_EngineMy_Super_Engine, 但是后来WP_Plugin 仍将仅使用My_Engine.

相反,你可以WP_Plugin 包含对混凝土的引用My_Engine 对象这有时被称为has_a 相反,或is_a 关系“(WP_Plugin 不再是类型My_Engine, 但它提到了My_Engine 或者“依赖注入”(当您实例化WP_Plugin 和注入My_Engine 而不是在内部硬编码)。

为了给出更详细的答案,了解应用程序应该做什么可能会有所帮助。您可以在多大程度上将UI与应用程序逻辑解耦?这可能是保持核心应用程序可移植到其他环境的最大障碍。

结束

相关推荐

GPL and plugins

插件开发中心说:“您的插件必须与GPLv2兼容。”。但我发现Topsy插件在GPLv3下。http://www.gnu.org/licenses/rms-why-gplv3.html 声明GPLv2和GPLv3不兼容。那么这应该被允许吗?我想使用Topsy插件中的一些代码。那么,我应该在GPLv2或GPLv3下发布插件吗??