問題描述
我對其他人如何開發 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。