這個項目使用的是一個過時的 laravel 版本,而其權(quán)限管理系統(tǒng)依賴于一個早已停止維護(hù)的包。嘗試升級 laravel 版本后,權(quán)限系統(tǒng)徹底崩潰,各種錯誤信息充斥著日志。我嘗試了各種方法,包括更新依賴、修改代碼,但都收效甚微。這時,我發(fā)現(xiàn)了 codebot/entrust 的一個 fork 版本,它聲稱修復(fù)了 laravel 7 和 8 的兼容性問題。抱著試一試的心態(tài),我決定使用 composer 安裝它:
首先,我根據(jù) Laravel 的版本選擇了合適的安裝命令:
對于 Laravel 7: composer require “codebot/entrust”: “^7.0”
對于 Laravel 8: composer require “codebot/entrust”: “^8.0”
安裝過程十分順利,沒有遇到任何阻礙。運行 php artisan migrate 后,數(shù)據(jù)庫遷移也成功完成。令人驚喜的是,權(quán)限系統(tǒng)恢復(fù)了正常功能!原先那些惱人的錯誤消失了,項目可以正常運行了。
雖然 Codebot/Entrust 解決了我的燃眉之急,但文檔中也明確指出,這個包目前已被廢棄,不建議用于新項目。作者推薦使用 spatie/laravel-permission 作為替代方案。 對于新項目,我強(qiáng)烈建議直接使用 spatie/laravel-permission,它更活躍、更完善,并且擁有更強(qiáng)大的功能。
然而,對于像我一樣需要維護(hù)老舊項目的開發(fā)者來說,Codebot/Entrust 的這個 fork 版本無疑是一劑強(qiáng)心針。它讓我避免了重構(gòu)權(quán)限系統(tǒng)的巨大工作量,節(jié)省了大量時間和精力。
總而言之,Codebot/Entrust 的這個 fork 版本,雖然是權(quán)宜之計,但它在緊急情況下,有效地解決了我的問題。 它讓我深刻體會到 Composer 的強(qiáng)大之處:快速、便捷地安裝和管理依賴包,極大地提高了開發(fā)效率。 希望這個經(jīng)歷能幫助到遇到類似問題的開發(fā)者。 記住,對于新項目,請務(wù)必選擇維護(hù)良好的、活躍的包,避免重蹈覆轍。