問題描述

我問這個問題是因為我在網際網路上搜尋,但找不到正確的解決方案。實際上,我想要一個解決方案,其中多個開發人員可以在單個 WordPress 專案上工作,而不會造成任何混亂的對方工作,但是我們知道,在 wordpress 中,每一件事情都維護在資料庫中,因為哪個外掛是活躍的,哪個不是。

如果開發人員在他們本地的專案中安裝外掛,而不是彼此溝通,每個人都應該安裝那個特定的外掛或外掛等,如果每個開發人員推/撥程式碼,一些錯誤的溝通可能會破壞他人的網站。

我們是否應該共享資料庫,以共享外掛/主題設定,以便開發人員之間不會有任何衝突或衝突。

謝謝

最佳解決方案

Git 外掛:

然後,使用 Git 來管理 composer.json 和 TGM 外掛的更改。

最困難的部分是同步資料庫:

當然,我們應該共享資料庫。重新配置外掛設定/選項不是一個好主意。

many plugins,免費和高階,這可以幫助。

如果要手動嘗試某些操作,請將 wp-cli 與 @Wyck 的 the answer 結合使用。

次佳解決方案

我看到的最好的解決方案是使用 Bedrock(https://roots.io/bedrock/) 。

這個問題的其他答案 (作曲家,以及管理你的外掛的東西) 是很好的答案; 但是 Bedrock 提供了一種系統化的,支援的,有檔案記錄的 continually-improved 方法,這比自己更喜歡。

另外,請記住,您可以有多個 git repo – 一個用於您的主題,一個用於您開發的每個自定義外掛,然後一個用於 Bedrock /Wordpress 安裝本身的 「主」 。

第三種解決方案

我的團隊面臨著類似的問題。我們使用 git 來版本我們自己的自定義程式碼,如外掛和我們寫的主題。我們使用 Composer 來管理依賴關係,比如我們沒有寫的外掛。我們檢查 composer.json 和 composer.lock 檔案到 git,以保持每個人都同步。每個開發人員預計會拉動 git 主站,並經常在他們的遊戲機上執行 composer update,以便每個人都保持最新狀態。

在資料庫中,開發人員主要關心配置,我們經常使用 WP-CLI 來保持配置的同步。例如,我們有一個 shell 指令碼執行一個 WP-CLI 命令來啟用或停用基於 per-host 的外掛; 某些外掛僅在我們的內容登臺主機上使用,例如,指令碼可以在任何主機上執行,​​只能在該主機上啟用適當的設定。如果需要的話,一些指令碼耗時太長的配置只是手動記錄下來的。

我們還有一個 Perl 指令碼,可以將資料庫從我們的內容分段伺服器完全克隆到 QA 或者開發主機上。如果他們想要所有當前的內容,開發人員可以定期使用這些內容,雖然通常不如程式碼和配置那麼重要。指令碼執行這些任務:

  • mySQL 轉儲內容分段伺服器的資料庫,更改表名,載入到目標伺服器的資料庫中

  • 使用 wp-cli 更改對資料庫中臨時伺服器的引用,以引用目標伺服器

  • 將目標伺服器上的 uploads 目錄與內容登臺伺服器的上傳同步

有一些有希望的解決方案,用於實際版本化資料庫的快速發展。 VersionPressMergebot 是我知道的兩個,也可能有其他的。

我在我的部落格上寫了更多的 technical details of how we set up WordPress to work with git and Composer 。有必要在自己的目錄中執行 WordPress 核心,以便我們希望在 git 和 WordPress 核心中保持程式碼之間的乾淨分離。我們將 WordPress 本身視為依賴,並使用 Composer 進行管理。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。