問題描述
我對其他人如何開發 WordPress 的主題和外掛感興趣。對我來說,管理面板中的 in-browser 編輯器並沒有削減它。目前,我只是使用一個帶有 PHP 外掛 (NetBeans) 的 IDE,從我的伺服器上拉下我的開發 web 目錄,在那裡進行編輯,然後進行測試,然後移植到 live 上。
我正在尋找其他人如何使用他們的工具來管理工作流程,以便在開始,測試和部署主題,外掛和測試最新版本的 WordPress 之前,在開始使用之前。
我已經將這個社群 wiki 做成了一個社群 wiki,以便其他人可以共享開發過程。我不期待在這裡找到一個單一的正確答案 – 你的過程是你自己的,我不會指望你為自己或任何其他人工作。我只是想提高我開發外掛和主題的能力,看看哪些是有用的或不適用於其他人。
另一個問題在此討論具體的 software tools to support WordPress development 。在這裡,我正在尋找可以獨立於工具應用的更多過程和方法,除了某些可能僅在某些工具系列中完成的任務之外。
最佳解決方案
為了記錄,我主要製作整個網站和外掛,並進行部署。我的工作流程非常 Ruby – 和 git-heavy 。
要開始一個新專案,我有一個 shell 指令碼,負責設定一個新的虛擬機器的整個業務,並檢查最新的 WordPress 標籤 (從我們自己的 git 倉庫,跟蹤 svn) 。
整個網站的基本形狀是 wp-content 的 git repsotory 。它包含 Capfile(capistrano 的 Makefile eqiuivalent) 和一起處理部署的 YAML 配置檔案 (http://github.com/dxw/wp-capistrano) 。在這個儲存庫裡面,我新增了一個主題和外掛作為 git sub-modules(是的,我們維護第三方外掛的 git 儲存庫 – 我們喜歡使用我們親自測試的最新版本) 。
對於主題,我有一個 code-generation 工具/框架 (github.com/dxw/wp-generate) 。這意味著考慮程式碼應該去哪裡,而且它具有在 View 和 Model / Controller 之間分離的自然方法。
編寫外掛時,我使用黃瓜/ webrat 做 test-driven 開發 (github.com/dxw/cucumber-wordpress) 。
而對於將開發資料庫遷移到生產中,通常只需複製轉儲 (WP_SITEURL 和 WP_HOME 由 capistrano 在分段/生產計算機上設定,因此無需搜尋/替換) 。
我無法想象我用這些指令碼儲存了幾個小時。
次佳解決方案
@Thomas Owens 這個問題有些重疊並重復了 「WordPress 主題/外掛開發軟體」 的問題。不確定是否應該關閉,但是看起來略有不同。所以…
Mac OS X
這是 Max OS X 的主要工具集 (總是尋找更好的) 。注意我嘗試過 NetBeans 並放棄了它。太慢,功能太少
- PhpStorm + XDEBUG – 除錯 IDE(在 MAC 上更好)
- VirtualHostX – 本地管理 Apache 虛擬主機 (我喜歡這個)
- FileZilla – FTP 客戶端
- Firefox Firebug – jQuery 除錯
- Navicat for MySQL – 商業 MySQL 客戶端
- Unfuddle.com – 客戶端專案的 SVN 儲存庫和任務管理
- HTTP Scoop – 合理的 HTTP 偵錯程式
- Fraise – 輕量級文字編輯器 (Smultron 的叉)
Windows Vista
當我在 Windows Vista 上時,我的主要工具包是:
- FileZilla – FTP 客戶端
- Firefox Firebug – jQuery 除錯
- Navicat for MySQL – 商業 MySQL 客戶端
- Unfuddle.com – 客戶端專案的 SVN 儲存庫和任務管理
- PhpED – 除錯 IDE(在 Windows 上沒有什麼更好,「可能 PhpStorm + [XDEBUG] [24])
- HeidiSQL – 大 open-source MySQL 客戶端
- Notepad2 – 輕巧可用的記事本替代品
- TortoiseSVN – SVN 客戶端
- Fiddler 2 – 無與倫比的 HTTP 偵錯程式
程式碼部署/資料遷移到切換域
不知道這是否正是您正在尋找的,但是我開發了一個外掛來簡化本地開發人員伺服器,測試伺服器和部署伺服器之間的遷移。我在這裡寫道:
希望這可以幫助
-麥克風
第三種解決方案
這是一個工作流程的答案,不是特定於 IDE 或外掛。
一個非常適用於外掛開發的解決方案是從本地的 apache web 伺服器開始,每個 wordpress 變體都安裝在 sub-folder 中。
在本地伺服器根目錄之外的另一個位置,儲存您的 wordpress 外掛/主題工作副本。在每個 wordpress 變體的/ wp-content / plugins 資料夾中建立符號連結到相應的中繼線/標籤/分支。
當您在 IDE 中編輯外掛時,您所做的更改顯然將在每個 wordpress 安裝中進行表示,因此可以輕鬆測試 wordpress 的多種變體。
本質上,您可以為每個本地 WordPress 變體開啟瀏覽器選項卡,並在單個專案和單個檔案庫的基礎上進行測試。
使用支援 SVN& FTP 您需要做的是編輯您的工作副本並將更改提交到儲存庫。
作為 IDE Coda 對我來說,但是我也喜歡 NetBeans 和 Eclipse 。
一旦你快樂,你的外掛工作,你已經承諾這些更改到您的儲存庫,然後您可以開啟您的 WordPress 專案,並將更改的外掛直接釋出到您的現場。
第四種方案
我有一個相對簡單的設定,從開始我的現在工作〜 2.5 年前發展。
Developing
我透過 SSH 進行所有開發,在 GNU screen 中使用 Vim 。 Vim 外掛包括:
垂直分割和:set hidden 是必不可少的。我還喜歡使用 railscasts 配色方案的 256 色終端 (Mac OS X 上的 iTerm) 。
我們也慢慢修改 dBug 以滿足我們的需求。當您知道變數是一個陣列或物件時,print_r()和 var_dump()可以很好的替代。
Deploying
目前我不會在許多公共外掛/主題上工作,所以我不會測試與多個版本的 WordPress 的外掛相容性。我在 dev 伺服器上編碼,並透過 Subversion 將該程式碼移植到生產中。
第五種方案
WordPress 主題開發流程
- 將 Mock 流線框轉換為基本的 XHTML 和 CSS
- 將 XHTML 插入 master.php 模板檔案,並轉換為模板標籤和 WP 功能
- 將 master.php 分成各種模板檔案,即:header.php,index.php,sidebar.php 和 footer.php
- 編寫可能需要的任何自定義查詢和函式
- 插入 CSS 佈局並新增
div來幫助調整 layout4 。
{outline:1px solid red;} - 將主題資料夾上傳到 WordPress 進行測試和進一步開發
WordPress 開發工具
- Aptana Studio WorkPlace 程式碼編輯器,內建 FTP
- 油灰
- 雙屏 1920 x 1200 顯示器,瀏覽器開啟,程式碼編輯器另一個
- Wacom Intuis 4 片
- Firebug 與 Yslow 和 Google Page speed
第六種方案
我的工作流程非常簡單。我跟上 4 個環境。測試,開發,分期和生產。
Workflow
我使用 git 進行修改控制; 我忽略了 wp-config.php 檔案,所以當我推拉不同的位置時,這個檔案不會被覆蓋。我使用 unfuddle 作為公共/中央儲存庫供他人推拉。
這似乎工作得很好。當我正在進行測試時,我會盡可能多地提交。至少每天一次,如果不是更多,我會同步到無障礙,讓開發伺服器拉動更改。我儘量不要在伺服器上做任何直接的工作,所以我主要只是拉扯變化。如果有重大的資料庫更改 (新外掛,更新的內容等),那麼我將從我的測試轉儲它; 備份開發並匯入轉儲。
我使用與 Staging 相同的過程。分段與生產一起坐在同一臺伺服器上,雙重檢查拋光,並確保所有設定和模組都在生產伺服器上工作。當我準備好了,我備份所有的生產檔案和資料庫,並從分段複製檔案和資料庫。
由於 wp-config.php 不在 git 中,所以推拉動作非常簡單。當轉移到生產從分期,我複製檔案,而不是使用 git,所以我必須確保 wp-config.php 是正確的。
我問過一個簡單的 question,我將研究使用這個外掛。
我也考慮過使用 Capistrano; 並建立一個非常詳細的遷移指令碼,它將透過並處理所有檔案和資料庫備份/遷移以及更新檔案路徑和 URL 。
Tools
- 我的編輯器的 Textmate,雖然我開始使用 MacVim 。我在 linux 上使用 vim 。
- Sequel Pro 用於資料庫操作。如果我無法連線,我將使用 PHPMyAdmin
- 如果需要,傳送 FTP 。
- git 進行修改控制。主要是透過命令列,雖然我已經在 Textmate 和 GittiApp 中使用了客戶端。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。