2013-07-18 22 views
1

我正在使用WordPress的网站项目,需要一些自定义插件。我想保持插件模块化,但其中一些需要类似的功能。所以,我觉得自己有矛盾的目标:代码组织与多个相关项目

  • 使每个插件自包含的,模块化的
  • 不要重复代码

例如,我有两个不同的插件输出需求<select>基于术语和一些参数列表的元素。我写了一个函数来完成这个任务,但是我应该在两个插件中复制这个函数吗?这看起来像一个维护噩梦,但如果我不这样做,一个插件将以一种非常随意的方式依赖于另一个插件。有没有一些聪明的解决方案,我错过了?

+1

您打算将这些插件公开吗或仅保留在您的项目中?如果是后者,我会亲自将它们放入某种lib /共享文件夹中,并将它们加载到插件中。 – skrilled

+0

这些将是这个项目的私人插件。 lib文件夹是一个有趣的想法。它仍然是一个依赖项,但它不一定是一个单独的插件。在WordPress文件系统组织中,你会建议保留lib文件夹(可能在wp-content下)? –

+0

这完全取决于你,但我通常把我的库放在项目本身之外的文件夹中;即:/ var/www/lib - 然后修改php.ini或设置php_flag添加新的包含路径,或者如果更简单,只需要/包含它们。 – skrilled

回答

1

考虑重复的代码。尤其要考虑函数的数量和长度。如果两个插件仅共享一对格式化方法,那么为了保持插件的独立性,复制该代码并不是什么大不了的事情。

如果重复代码越来越相当丰厚,开始考虑执行下列操作之一:

  1. 合并插件到一个单一的插件。只有在两个插件适合相同的问题空间时才能执行此操作。仔细看看插件。有一种机会让他们以前看起来分开,这是虚幻的,基本行为密切相关。

  2. 将重复代码提取到第三个插件中,该插件是每个共享代码的插件的依赖关系。只有在重复代码相关且作为插件有意义的情况下才能执行此操作。