很多人覺得下載TP最新版本就是去官網點個按鈕,裝完就開始寫代碼。可真正上線後才發現,一個不起眼的Composer依賴版本問題,能把整個項目拖垮。這就是我今天想重點聊的——版本風險到底從哪來,又該怎麽管。
依賴鎖文件不是擺設,它是你項目的安全帶。我見過太多團隊在開發機上用composer install跑得好好的,測試環境卻報錯,原因就是沒把composer.lock提交到版本庫。鎖文件鎖定了每個依賴的精確版本,隻要它不變,你拉下來的永遠是同一套代碼。如果你還在手動改composer.json裏的版本號,趕緊換成鎖文件管理。
版本號波浪號~和脫字符^的區別,很多人一知半解。^1.2.3允許到2.0.0以下的最新版本,~1.2.3隻允許到1.3.0以下。選錯了,一個次要版本更新可能就引入破壞性變更。我建議對核心依賴用~鎖定主版本和次版本,對工具類庫可以用^但一定要搭配CI自動測試。
定期執行composer outdated看看哪些依賴落後了,但別看到新版就追。先讀CHANGELOG,再看UPGRADE文檔,最後拉分支測試。特別是安全更新,TP官方發布的緊急補丁一定要優先合入,其他功能性更新可以等版本穩定了再上。
安全審計是你的最後一道防線。composer audit能直接掃描已知漏洞,配合roave/security-advisories這種包,連安裝有漏洞的依賴都會被禁止。我習慣每次部署前跑一次審計,發現問題立刻鎖版本或替換依賴,絕不帶問題上線。
