佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Laravel 解決composer相關操作提示php相關異常的問題

Laravel 解決composer相關操作提示php相關異常的問題

熱門標簽:Linux服務器 服務器配置 科大訊飛語音識別系統(tǒng) Mysql連接數(shù)設置 電子圍欄 阿里云 銀行業(yè)務 團購網(wǎng)站

Laravel 的一大特色就是使用 composer 來管理依賴包,這使得整個項目的升級、擴展變得異常容易。一般情況下,只需要我們輸入幾個命令并按下回車,就能完成插件包的安裝、更新以及卸載工作。

但有時候你會碰到一種比較有意思的問題。那就是使用 composer 進行相關安裝、更新插件操作的時候,卻報 PHP 程序異常。比如,github中一個項目,在你上次更新之后上游代碼又加入新功能,使用了一個新的依賴包。這時你使用git pull更新代碼后,依賴包并沒有安裝,那么再用composer update 來更新這個必要的包時,卻會因為項目程序中缺少這個包而報錯……(說得有點兒繞),如此就陷入了一種想要安裝這個包卻報異常,而想要解決這異常又正好需要裝這個包的死循環(huán)里了。

其實造成這種問題的原因就藏在項目根目錄下那個 composer.json 文件里,稍微看一下就會發(fā)現(xiàn),其中有一個 scripts 屬性(內容見下方代碼),其中設置了項目創(chuàng)建后、根包安裝后、插件包安裝前和安裝后要自動完成的操作,它們大多是php artisan命令,而這些命令是由程序中 Console 組件驅動的,當程序發(fā)生異常,它們也就無法運行,于是當 composer 操作調起這些命令時就出現(xiàn)異常了。

"scripts": {
  "post-root-package-install": [
   "php -r \"copy('.env.example', '.env');\""
  ],
  "post-create-project-cmd": [
   "php artisan key:generate"
  ],
  "post-install-cmd": [
   "php artisan clear-compiled",
   "php artisan optimize"
  ],
  "pre-update-cmd": [
   "php artisan clear-compiled"
  ],
  "post-update-cmd": [
   "php artisan optimize"
  ]
 },

在了解了原因之后,再來說解決辦法就不難理解了,有兩種辦法:

第一種方法比較笨,就是在其它空項目里安裝這個包(或者找到以前裝過的現(xiàn)成的),然后把源碼復制到vendor目錄后,最后使用 composer dump-autoloat --optimize 更新自動加載文件。

第二種則比較容易,因為它是針對造成這個問題的原因來對癥下藥的。

具體操作就是先刪除上面提到的 scripts并保存 composer.json,然后進行需要的 comoser 操作,完成后再將刪除的 scripts 部分加回去去。

需要注意的是,因為這次 composer 操作時沒有自動運行 scripts 里那些命令,因而需要自己根據(jù)情況手動處理一下,比如 clear-compiled,optimize 等,或者在composer.json改回去之后再進行一次同樣的composer操作。

在laravel最新的版本中,composer.json中的pre-update-cmd這條已經被刪除了,而這條正是引起本文中所述問題的關鍵原因。各位可根據(jù)自己的情況手動刪除它。

以上這篇Laravel 解決composer相關操作提示php相關異常的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Laravel框架中composer自動加載的實現(xiàn)分析
  • PHP管理依賴(dependency)關系工具 Composer的自動加載(autoload)
  • laravel 實現(xiàn)向公共模板中傳值 (view composer)
  • 淺談laravel 5.6 安裝 windows上使用composer的安裝過程
  • 使用composer 安裝 laravel框架的方法圖文詳解
  • 一次因composer錯誤使用引發(fā)的問題與解決
  • tp5框架使用composer實現(xiàn)日志記錄功能示例
  • windows環(huán)境下使用Composer安裝ThinkPHP5
  • PHP創(chuàng)建自己的Composer包方法
  • 分析Composer實現(xiàn)自動加載原理

標簽:棗莊 衢州 廣元 江蘇 衡水 蚌埠 萍鄉(xiāng) 大理

巨人網(wǎng)絡通訊聲明:本文標題《Laravel 解決composer相關操作提示php相關異常的問題》,本文關鍵詞  ;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    寿光市| 华宁县| 吉首市| 云林县| 洛浦县| 建湖县| 岳池县| 杨浦区| 德格县| 时尚| 蓬安县| 盐山县| 南丹县| 瓦房店市| 崇州市| 苍梧县| 湘潭市| 灵山县| 精河县| 郎溪县| 宁南县| 凤山县| 自贡市| 安乡县| 行唐县| 虞城县| 黎川县| 泰安市| 永新县| 江源县| 石泉县| 郎溪县| 琼结县| 志丹县| 铅山县| 佳木斯市| 莒南县| 兴仁县| 江门市| 沂南县| 泰来县|