2011-09-23 107 views
2

我正在努力測試依賴於某些框架文件存在的php開發代碼的最佳方法。我認爲git有三種可能的情況:用git和php開發(網絡開發)

  • 創建活動生產目錄的副本並將此「dev」目錄克隆到本地工作站。下一步將是編輯本地工作站上的代碼並提交/推送每個更改。您可以通過生產服務器上的'dev'url來檢查您的工作。如果一切正常,您可以將更改推送到「實時」目錄。在編輯/修復代碼時(語法錯誤或其他明顯的錯誤),這種方法可能會導致很多提交,並且會增加額外的步驟(提交/推送)來查看結果。

  • 創建一個鏡像生產服務器的'dev'服務器。該服務器將包含所有框架文件,您可以直接編輯「實時」目錄的副本,並立即看到您的更改。如果您願意,可以將遠程「dev」目錄安裝到本地工作站。這需要一個額外的服務器,需要維護,你需要這些資源來設置它。

  • 創建一個本地「開發」工作站環境,並在'live'或'dev'服務器上覆制存儲庫。通過這種方式,您可以測試本地計算機上的所有代碼,並僅推出已經過測試和批准的提交。與方法1相比,這減少了提交次數。要在本地重新創建「開發」環境,您可能必須將大量框架/依賴文件安裝到本地工作站,即使這樣,當代碼移植到實際的活動服務器時,它也可能不是100%可靠的。

基本上我想找到最好的方法「寫 - 測試 - 修改 - 測試 - 修改 - 測試 - 提交」 週期,如果你是依賴於框架文件(無論框架而定)。你會創建一個'dev'服務器嗎?還是你會在本地工作站上重新創建確切的生產環境?理想情況下,只有在完成一些初始測試(明顯的語法錯誤等)後纔會提交代碼。具有本地git repo的'dev'服務器將要求您承諾每一個小改動以測試您的工作,這可能是單調乏味的。...

我希望我已經說清楚了。我正在尋找整合git和'write-test-commit'循環的最佳方式。通常情況下,你會在本地機器上測試,但通過Web開發,你可能需要一個webserver +框架來測試你的代碼。直接在'live'服務器上編輯是我想要避免的。

感謝您的輸入!

回答

4

確實有很多方法可以做到這一點,但這裏是我最近工作的2美分。因爲如果你有不止一個開發者,每個開發者可能會嘗試用衝突的代碼更新開發者服務器,或者如果他們在類似的領域工作,覆蓋一些開發者你的測試代碼,因爲你們都可能在同一個分支上工作,但是既修改了代碼,也沒有推送更改。

也就是說,您可能需要一個與您的實時服務器非常相似的開發服務器,以便在您和其他一些開發人員進行了一些更改後,可以在開發者服務器上測試它們,然後更新活服務器。

在我的環境中,我在Linux上開發並使Apache/PHP運行與實時服務器相同的版本和配置。這樣,我克隆了我的git repo,設置了我的環境,以便我的文檔根目錄是我的git repo的「公共」目錄(例如htdocs)。在這種情況下,我們有一個通常共享的開發MySQL服務器,而不是在本地機器上,但是你可以做任何最簡單的事情。我們的系統依賴於來自現場的不斷更新的數據,所以這就是共享數據庫的原因,我們有一個系統會自動將大量必要的「測試」數據添加到數據庫。

這樣,我可以從git中提取最新的代碼,完成所有我想要的工作,工作中斷修復,工作工作等等,當我完成我的任務時,我可以推回更改爲其他開發者提供git。

當您準備發佈時,您可以在開發服務器上進行所有測試和測試,驗證是否有好處,然後推送到現場。

在我的情況下,更新「活」服務器,一個人負責,我使用rsync同步我的本地工作目錄到活服務器。因此,當我確定我們已經準備好部署時,我從git中取出最新的代碼,然後運行腳本,將我的git目錄rsyncs到服務器。

我會避免你的方法1 & 2,並採用類似3的東西。這可能是你做的最簡單的事情,也是最容易管理的。根據你的團隊的情況,你可以創建一個開發虛擬機,這個虛擬機是用你所有使用的所有依賴關係,正確的軟件和開發工具預先構建的,或者讓開發者自行設置。

到目前爲止,這個方法對我和我的團隊中的其他人都非常有效。

4

打電話給我,但每個開發人員都應該有一個本地開發AMP堆棧,可以開發它們。如果您不知道如何設置生產服務器的精確鏡像,請先解決該問題。

一旦你在那裏,讓每個開發人員設置一個乾淨的操作系統安裝的虛擬機,配置web/php/db服務器和庫/ framewroks來匹配生產環境應該是微不足道的,檢查你的項目,並開始工作。

開發人員在他們自己的本地回購協議中違反個人分支,在本地測試後,通過推送或拉取請求或其他方式發送代碼。

有關如何將更改合併到主控的確切規則取決於您的團隊的偏好。但開發人員應該幾乎總是有一個完整的本地開發環境。如果看起來很難建立起來,那是一個很大的問題。弄清楚如何使它變得簡單並記錄下來。

+0

+1虛擬機是讓本地環境儘可能接近生產的好方法。 Oracle VirtualBox是一個很好的免費選項。它總是比WAMP,XAMP,easyPHP等工具好得多 – codercake