[心得]升級專案 PHP 版本
Upgrading GitHub from Rails 3.2 to 5.2 https://githubengineering.com/upgrading-github-from-rails-3-2-to-5-2/?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website 最近在公司進行某個專案的 PHP 升版 ,目標是從 7.1 升級到 7.2。 因為程式碼有點龐大,歷史又有點久了,升級的過程中意外的麻煩, 今天剛好看到這篇文章,值得借鏡。 本次升級的專案,因框架本身因為許多相容問題下個大版本中已解決但因為結構差異太大沒辦法生大版,只能想辦法去找出問題點,並嘗試去看一下官方的 issue 或 commit 資訊中尋找對應的解法,能升級小版本且不會與其他套件互沖的或是會互衝但可以解決的就升級,不行的話只能自己搬過來,個人覺得最困難的應該是找到真正的問題點在哪個環節,確認之後想辦法重現驗證,再去解決,底下是大致上的升級流程。 升級流程: 1.升級 PHP 2.跑測試,發現 PHPUnit 不相容 3.升級 PHPUnit 4.升級框架 PHPUnit 相關套件 5.成功跑測試碼,整理分類因升級導致的錯誤 6.比較 PHP 官方從 7.0 遷移到 7.1,7.1 遷移到 7.2 的所有內容,修正錯誤,以及檢查可能被影響但是沒出錯的程式碼(例如有些特性的移除或新增,或是即將棄用等,測試碼可能測不出來,或下個小版本可能會出問題,需要提前發現解決) 7.測試OK後,與維運人員合作部署到公司的開發環境 8.在開發環境反覆測試,不斷發現問題 ,修正問題 流程比較長的地方主要卡在三個部分: 1.有些程式碼屬於其他部門,要修正的話可能會影響到邏輯,需反覆溝通協調, 這邊雙方時程的掌握和追蹤因屬於不同部門,很難掌握。 2.由於區分開發,測試,正式環境,本身 branch 又是從正式環境長出來的,開發的時程拉長會不斷的遇到修好但是又出現有問題的 commit merge 上來,或是各環境本身某些邏輯行為就有差異,這部分只能整理一份注意事項給同事參考,降低寫出不相容的程式碼,以及勤勞到 code review 工具上注意所有正在開發中的 co...