2010-03-03 16 views
2

這可能適用於其他可擴展的內容管理系統,但我一直在使用Drupal。具體來說,我創建了一個圖像共享Web應用程序,其功能依賴於比Drupal核心代碼更多的原始代碼。我使用了WebForm模塊,並在自定義頁面中使用硬編碼的PHP指向它的表單,以編程方式創建節點以及其他奇怪的巫毒。什麼時候開發一個新的drupal模塊與存在的工作?

就在我完成之前,我意識到我也許應該做出自己的模塊,或者我應該有嗎? 即使回想起來也很難說。

你用什麼來決定什麼時候需要編寫一個新模塊,以及你正在尋找的功能可以從可用的功能中拼湊在一起?

回答

3

我對此有強烈的意見,這是所有自定義編碼應自定義模塊內完成,只有一個可能的例外(見下文):

我辨別三種情況:

  1. 全新的功能 - 這顯然需要封裝新功能的自定義模塊。它使得它可以重用,甚至可以變成一個'官方'貢獻的Drupal模塊,如果功能滿足大衆需求的話。
  2. 調整現有功能 - 對於每個站點,我立即設置一個空白的自定義模塊(以站點命名)。用於調整現有功能的所有自定義代碼(來自核心模塊或貢獻模塊)均在該模塊中進行。這樣一來,我所有的自定義設置都是完全分離的,這使得更新核心模塊或其他模塊變得更加容易,而無需不斷地將自定義設置重新應用到更新後的代碼中(當然,必須檢查自定義設置是否在更新後仍然可用,或根據需要刪除它們)。
  3. 修復bug /添加缺少的功能 - 這是上面提到的可能的異常。如果我的更改只是一個錯誤修復或者添加了一個明顯但缺失的功能,那麼我可能會在原始代碼中這樣做,將我的更改作爲補丁提交給原始模塊,希望它們將在未來版本中合併,從而使我的更改過時。

以我的經驗,從原來代碼中分離自定義的「開銷」是不是一個真正的「開銷」,作爲「一次性」的調整&修復平時堅持圍繞更長的時間比預期的,並在網站的整個生命週期內都有增長的趨勢。讓他們從一開始就分離出來,可以節省很多維護中的麻煩,因爲應用更新&安全修復程序以及擴展調整會更容易。

+0

感謝您的好評。 我真的很喜歡你對案例2的解釋。 應該在我的下一個項目中採用它。 – cazlab 2010-03-05 14:34:19

0

當您想要輕鬆共享或重用功能時,創建一個新模塊。這樣做會有開銷,所以如果是一次性的,那就不值得。

0

我更喜歡在drupal.org上進行全面搜索,以查找具有我需要功能的任何/所有模塊。我搜索drupal.org & groups.drupal.org(&甚至可能是論壇)與該模塊的名稱,以查看其他人對此有何評論。最後,我總是檢查drupalmodules.com,看看社區中的其他人對此有何評論。

如果我找不到我需要的東西,我推出自己的模塊。 Plynx也是對的,如果你打算重用這個功能,創建一個新的模塊,如果它的獨特性還不存在的話。

相關問題