iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0
自我挑戰組

技術隨筆系列 第 26

Laravel 11 升級指南 & 版本管理策略

  • 分享至 

  • xImage
  •  

Laravel 在今年年初發布第 11 版,意味著專案也要迎接一些變化,本篇文章介紹升級時需要注意的事情

  1. 檢查官方升級指南

Laravel 通常會提供詳細的升級指南,專案升級之前可以先查看 Laravel 官方升級指南 [^1] 以了解可能的重大變更和破壞性改動。

  1. 更新 PHP 版本

Laravel 11 可能需要更高版本的 PHP(例如 PHP 8.2 或更新版本)。確保你的環境符合 Laravel 11 的 PHP 要求。

  1. 更新相依套件

使用以下命令更新 Laravel 的核心套件: composer require laravel/framework "^11.0" --update-with-all-dependencies

如果你的專案中還有其他 Laravel 相關套件或工具,像是 Horizon、Telescope 等,也需要檢查並更新這些套件的版本。

  1. 檢查已廢棄功能

在 Laravel 10 及之前版本中,某些功能可能會在 Laravel 11 中被廢棄或移除。參照升級指南或 Release Notes,檢查是否有任何用到的功能被廢棄。

  1. 測試與修正

單元測試:升級後,確保運行所有的單元測試來驗證專案功能的正常性。
手動測試:檢查專案的核心功能和關鍵路徑是否能正常運作,特別是升級後涉及的改動點。

  1. 更新配置檔案

Laravel 新版本通常會引入新的配置項目或變更現有配置,使用 php artisan config:clear 並檢查 config 檔案中是否需要同步更新。

  1. 檢查路由與中介層

確認路由定義和中介層是否在新版本中仍然有效,並檢查 Laravel 是否引入了新的路由功能或語法。

  1. 檢查 Blade 模板

升級後檢查 Blade 模板語法的變化,特別是涉及新功能或已廢棄功能的部分。

這些步驟應該可以幫助你順利地從 Laravel 10 升級到 Laravel 11。確保在升級前備份所有重要資料,以防萬一。

版本管理策略

  1. 基礎時間線概述

Laravel 每年通常發布一個主要版本,並提供 18 個月的錯誤修復和 2 年的安全性更新 (Laravel)。這意味著在每個新版本發布時,團隊應該在這 18 個月的窗口期內開始計劃升級,以避免面臨沒有錯誤修復和支持的風險。Laravel 生態系統中的其他套件,例如 Horizon、Telescope 和 Sanctum,通常也會緊隨主要版本更新,可能會在數月內發佈相容版本。

  1. 升級規劃

短期規劃(1-6 個月)

在 Laravel 新版本釋出後的 1-6 個月內:

  • 核心依賴升級: 更新 Laravel 的核心框架到新版本(例如 Laravel 11),同時升級 PHP 至新版本要求(例如 PHP 8.2)。
  • 測試與驗證: 檢查所有核心功能是否相容,並運行自動化測試來驗證是否有破壞性變更。
  • 相依套件: 檢查 Laravel 生態系統中的主要套件,如 Horizon、Passport 和 Sanctum 是否也已更新,並及時升級這些套件。

中期規劃(6-12 個月)

  • 跨版本相容性測試: 開始部署新版本於開發和測試環境,並測試與其他 Laravel 周邊工具的相容性(如第三方 API、測試工具、部署工具)。
  • 基礎設施更新: 升級相關的開發和部署環境,例如 PHP、Composer 版本,確保與最新的 Laravel 版本相容。

長期規劃(12-18 個月)

  • 全面遷移至新版本: 在錯誤修復支持結束前,全面將專案遷移至最新版本,並停止舊版本的開發支持。
  • 功能升級: 隨著 Laravel 不斷添加新功能(如隊列、WebSocket 支援、加密密鑰輪轉等),可以考慮逐步引入新功能來提高系統效率。
  1. 考量套件更新速度

Laravel 生態系中的大多數套件,特別是官方套件如 Horizon、Telescope、Sanctum,通常會在 Laravel 新版本發布後幾個月內釋出更新。團隊應密切關注這些套件的更新進度,並根據需要調整升級進度。

  • 短期跟進套件更新: 在 Laravel 主版本發布後的 3 個月內密切監控其生態系中重要套件的更新版本,尤其是與身份驗證、佇列處理等核心功能相關的套件。
  • 相依套件測試: 在升級新版本時,確保所有相依套件的相容性測試,特別是自定義開發或依賴於特定版本 API 的情況。
  1. 風險與應對策略
  • 升級風險: 升級到新版本時,尤其是在生態系統中的依賴還未完全更新時,可能會遇到不相容的問題。解決方案包括:
  • 隔離環境測試: 在專門的測試環境中運行新版本,測試所有依賴,並及時回報潛在的問題。
    漸進式升級: 先逐步升級次要依賴,避免一次性升級所有套件帶來的不穩定性。
  1. 總結

根據 Laravel 11 的支援期和 Laravel 生態系統的更新速度,建議在新版本釋出後的 6 個月內完成核心升級,並在 18 個月內將整個專案完全遷移至最新版本。這樣的策略不僅能保持系統的穩定性,還能及時利用 Laravel 新功能提升開發效率。


[1]: 升級指南 https://laravel.dev.org.tw/docs/11.x/upgrade
[2]: 版本說明 https://laravel.dev.org.tw/docs/11.x/releases


上一篇
極簡風格的 Laravel 10 開發配置 - 無 docker、無 mysql、無 nginx
下一篇
透過 Protobuf 改善 JWT 傳輸性能是可行的嗎?
系列文
技術隨筆30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言