問題描述

我問這個問題是因為我在互聯網上搜索,但找不到正確的解決方案。實際上,我想要一個解決方案,其中多個開發人員可以在單個 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。