php - 何时开发新的 drupal 模块与使用现有模块?

标签 php architecture drupal

这可能适用于其他可扩展的内容管理系统,但我一直在使用 Drupal。具体来说,我创建了一个图像共享 Web 应用程序,其功能依赖于比 Drupal 核心代码更多的原始代码。我使用了 WebForm 模块,并将其表单指向具有硬编码 php 的自定义页面,以通过编程方式创建节点和其他奇怪的巫术。

就在我完成之前,我意识到我也许应该制作自己的模块,或者我应该这样做? 即使回想起来也很难说。

您用什么来决定何时需要编写新模块以及何时可以将可用的功能拼凑在一起?

最佳答案

我对此有强烈的看法,即所有自定义编码都应该在自定义模块内完成,只有一个可能的异常(exception)(见下文):

我发现三种情况:

  1. 全新的功能 - 这显然需要一个封装新功能的自定义模块。它使其可重用,如果功能满足流行需求,甚至可以变成“官方”贡献的 Drupal 模块。
  2. 调整现有功能 - 对于每个站点,我立即设置一个空白的自定义模块(以站点命名)。用于调整现有功能(无论是来自核心模块还是贡献模块)的所有自定义代码都发生在该模块中。这样,我的所有自定义项都被干净地分开,这使得更新核心或其他模块变得更加容易,而无需不断地将我的自定义项重新应用到更新的代码(当然,必须检查自定义项在更新和调整后是否仍然有效)或根据需要删除它们)。
  3. 修复错误/添加缺失的功能 - 这是上面提到的可能的异常(exception)情况。如果我的更改只是错误修复或添加明显但缺失的功能,我可能只是在原始代码中执行此操作,将我的更改作为原始模块的补丁提交,希望它们能够合并到 future 的版本中,从而使我的更改过时。

根据我的经验,将自定义与原始代码分离的“开销”并不是真正的“开销”,因为“一次性”调整和修复通常比预期持续的时间要长得多,并且有一种趋势在网站的生命周期内不断发展。从一开始就将它们分开可以在维护过程中节省很多麻烦,因为应用更新和安全修复以及扩展调整将变得更加容易。

关于php - 何时开发新的 drupal 模块与使用现有模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2375863/

相关文章:

php - 如何使一个 block (或一个区域)在 Drupal 中 float ?

php - 使用 laravel 内置的 API 登录用户

php - jquery ajax 从 php 脚本中获取的值不超过一个

C# NHibernate架构,三层应用

jquery - 屏幕调整大小时猫头鹰轮播宽度问题

php - Drupal 7 xautoload Composer

javascript - 寻找转译器 : php to javascript

javascript - Angular 2 : SyntaxError: JSON. 解析:JSON 数据第 1 行第 1 列出现意外字符

具有强制数组大小参数的 Java 方法?

.net - F# Seq.next - 正确的模式是什么?