成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 一次因composer錯誤使用引發(fā)的問題與解決

一次因composer錯誤使用引發(fā)的問題與解決

熱門標(biāo)簽:十堰ai電話機(jī)器人效果怎么樣 上海公司外呼系統(tǒng)線路 銀川ai電話機(jī)器人 浙江外呼電話系統(tǒng)軟件 臨沂智能電銷機(jī)器人軟件 芒果電銷機(jī)器人 地圖標(biāo)注風(fēng)向標(biāo) 安陽自動外呼系統(tǒng)價(jià)格是多少 電梯外呼線路板維修視頻

前言

這個思考源自于一個事故。讓我對版本依賴重新思考了一下。分享出來供有需要的朋友們參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧

事故現(xiàn)象

一個線上的管理后臺,一個使用laravel搭建的管理后臺,之前在線上跑的好好的,今天comopser install之后,出現(xiàn)錯誤信息:

[2019-02-25 16:00:33] production.ERROR: Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) at /xxxx/application/estimate-admin/vendor/symfony/translation/Translator.php:89)

事故分析

這個是個底層庫,基本上,一看就知道是版本兼容問題,進(jìn)去代碼一看,里面有行代碼是 ?string,這個是php7.1引入的一種新特性。

看了下我的composer.json,里面主要引用的是laravel的框架,之前的laravel/framework的版本是"~5.5"

于是想當(dāng)然以為是laravel的版本升級導(dǎo)致的,于是我把laravel的版本固定到一個子版本

"laravel/framework": "5.5.21",

發(fā)現(xiàn)還是會出現(xiàn)這個錯誤。估摸可能不是laravel版本升級導(dǎo)致的。于是從laravel的版本依賴追到問題的包"symfony/translation"。

鏈條如下:

我的項(xiàng)目 "laravel/framework": "5.5.21",
  laravel/framework "symfony/http-kernel": "~3.3",
    symfony/http-kernel(3.3.13版本) "symfony/translation": "~2.8|~3.0",
    symfony/http-kernel(3.4版本) "symfony/translation": "~2.8|~3.0|~4.0",

symfony/translation3.4版本:

public function __construct($locale, $formatter = null, $cacheDir = null, $debug = false)

而在4.0的時(shí)候加入了7.1的特性

 public function __construct(?string $locale, MessageFormatterInterface $formatter = null, string $cacheDir = null, bool $debug = false)

我機(jī)器上的版本是PHP 7.0。所以導(dǎo)致了在composer升級的時(shí)候symfony/http-kernel也升級,帶來了symfony/translation升級到4.x,引入了PHP7.1的新特性。

解決方法

升級線上機(jī)器PHP版本是不可能的事情。于是我只能強(qiáng)制限定版本號。

直接在最上層我的項(xiàng)目中require symfony/translation,并且指定版本號。

"symfony/translation" : "3.3.13"

重新composer update 就可以了。

思考

這是一個典型的依賴包升級導(dǎo)致的業(yè)務(wù)應(yīng)用出錯的案例。symfony/translation 從 3.3.13 升級到4.*,需要的PHP版本從7.0升級到7.1。這樣的升級,laravel/framework 版本 v5.5.21 是無感知的。

而我們看 laravel/framework v5.5.21 的(comopser.json)[https://github.com/laravel/framework/blob/v5.5.21/composer.json]

{
 "name": "laravel/framework",
 "description": "The Laravel Framework.",
 ...
 "require": {
 "php": ">=7.0",
 "ext-mbstring": "*",
 "ext-openssl": "*",
 ...
 "symfony/http-kernel": "~3.3",
 },
 ...
}

這里的 PHP >= 7.0 是不是格外扎眼,根本已經(jīng)不靠譜了。

真正解決辦法

哈,其實(shí)這里并沒有結(jié)束。這個問題包版本依賴其實(shí)各個包都沒有問題。

其實(shí)這里有一個問題,我打包機(jī)器的PHP版本是7.1,但是線上機(jī)器是7.0.0,所以會導(dǎo)致這個問題。

其實(shí)composer比我們想象的更為強(qiáng)大。它會根據(jù)你當(dāng)前機(jī)器的PHP版本,判斷你的所有依賴分別使用什么版本,在composer update的時(shí)候,會根據(jù)所有依賴的版本需求選擇一個最好的版本。

所以我把我的打包機(jī)器上的PHP切換成7.0,查看生成的composer.lock,里面的symfony/translation就限制到使用3.3.x版本 就不會出現(xiàn)這個問題了。

composer的正確使用姿勢

是否要將composer.lock加入到git庫

這個是我這次犯的一個錯誤,沒有將composer.lock進(jìn)入版本庫,打包機(jī)器composer install的時(shí)候就相當(dāng)于update操作了。對于業(yè)務(wù)來說,這個是不對的。業(yè)務(wù)要做的事情是保證業(yè)務(wù)穩(wěn)定性,其實(shí)任何的庫依賴的升級,都需要經(jīng)過業(yè)務(wù)的測試和驗(yàn)證才能上線。所以,這里強(qiáng)烈建議在業(yè)務(wù)項(xiàng)目里面,將composer.lock強(qiáng)制加入git代碼庫中。

是否要使用自動升級

版本依賴的時(shí)候,使用~,^符號會在composer udpate的時(shí)候根據(jù)依賴包已經(jīng)有的類庫。

我理解自動升級的機(jī)制有好也有壞處,這個就相當(dāng)于把主動權(quán)(這里已經(jīng)說的是update的主動權(quán))放在哪里。作為一個基礎(chǔ)類庫,我當(dāng)然希望你使用我的時(shí)候能相信我,我的每次版本升級都是兼容的,也不會引入bug。所以類庫是會希望你會使用自動升級。這樣我的一些bug修復(fù),在你update的時(shí)候你就會自動下載并且修復(fù)了。

但是對于業(yè)務(wù)來說,業(yè)務(wù)穩(wěn)定是死要求。一旦我update的時(shí)候,我使用了你的新下載的包,這個實(shí)際上就有可能引入一個bug。沒有經(jīng)過完整的測試,是不應(yīng)該做這種操作的。

但是實(shí)際上,我們是無法完全杜絕這個情況,比如你的一個lib包依賴了另外一個lib包的時(shí)候,它如果使用了自動升級,你是完全沒有辦法的。

所以一旦我們使用包依賴,自動升級的事情,是無法杜絕的。

慎用update

使用update操作的時(shí)候,必須想到會引發(fā)什么操作,盡量將composer.lock做下差異比對,明白下前后兩個依賴包差別在哪里。

總結(jié)

包依賴問題,不僅php有,golang也有,基本注意點(diǎn)都是如上,一樣的。

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

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

標(biāo)簽:徐州 武威 寧夏 常州 荊門 吐魯番 遂寧 遵義

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《一次因composer錯誤使用引發(fā)的問題與解決》,本文關(guān)鍵詞  一次,因,composer,錯誤,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《一次因composer錯誤使用引發(fā)的問題與解決》相關(guān)的同類信息!
  • 本頁收集關(guān)于一次因composer錯誤使用引發(fā)的問題與解決的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    色呦呦在线免费观看| 岛国在线视频免费看| 亚洲精品在线观看视频| 日韩中文字幕组| 欧美尤物巨大精品爽| 99久久久久成人国产免费| 亚洲免费网址| 国产无遮挡aaa片爽爽| 亚洲伊人一本大道中文字幕| 日韩护士脚交太爽了| 欧美第一黄网免费网站| 色诱亚洲精品久久久久久| 欧美日韩另类国产亚洲欧美一级| 在线观看国产一区二区| 亚洲电影免费观看高清完整版在线| 男女私大尺度视频| se69色成人网wwwsex| 国产男女猛烈无遮挡免费视频| 国产成人在线视频| 国产污污在线观看| 久久wwww| av综合网址| 成人免费网站视频| 亚洲精品**不卡在线播he| 亚洲无码精品一区二区三区| 蜜桃91精品入口| 国产系列电影在线播放网址| 日本 国产 欧美色综合| 国产一区日韩| 亚洲永久精品唐人导航网址| 手机在线免费看片| 四虎国产精品免费久久5151| 精品偷拍激情视频在线观看| 小鲜肉gaygays免费动漫| 成人h动漫精品一区二区无码| 亚洲高清三级视频| 韩国黄色一级大片| 国产精品 欧美 日韩| 手机在线免费看av| 老司机很黄的视频免费| 久草福利在线| 成人免费直播| 久久超碰97人人做人人爱| 亚洲熟妇无码另类久久久| 亚欧视频在线观看| 婷婷丁香激情综合| 香蕉av一区二区三区| 日本在线观看中文字幕| 欧美影院精品一区| 色噜噜在线观看| 午夜精品福利一区二区| 多人欧美交性姿势| 91尤物视频在线观看| 国产一级18片视频| 欧美日韩视频在线一区二区观看视频| 国产精品久久久高清免费| 国产资源在线视频| 精品国产91久久久久久浪潮蜜月| 一本色道久久综合亚洲aⅴ蜜桃| 国产丝袜视频在线观看| 国产一卡二卡在线| 亚洲精品视频观看| 国产一区二区三区中文| 午夜在线一区二区| 无码熟妇人妻av在线电影| 国产福利在线播放麻豆| 91网页版在线登录入口| 中文字幕日韩在线| 韩国福利视频一区| 亚洲欧洲国产一区| 国产成人精品三级麻豆| 欧美成人一区二区在线观看| 亚洲男人的天堂av| 制服丝袜在线第一页| 91精品国产综合久久福利| 亚洲一区二区不卡免费| 国产福利一区在线| 销魂美女一区二区| 亚洲人成网在线播放| 韩国毛片一区二区三区| 欧美亚洲精品在线| 中国一级大黄大黄大色毛片| 99re在线观看| 国产真人无遮挡作爱免费视频| 国产伦理精品| 免费精品国产自产拍观看| 俺去亚洲欧洲欧美日韩| 国产在线拍揄自揄拍无码视频| 国产xxxx振车| av电影在线网| 伊人久久大香线蕉综合网站| 欧美日韩一级片在线观看| 日韩在线一卡二卡| 亚洲午夜在线视频| 午夜电影亚洲| 在线观看免费高清完整| 欧美激情理论| 日韩在线观看免费高清完整版| 亚洲黄页在线观看| 日本大胆人体视频| 色94色欧美一区| 国产亚洲欧美色| 亚洲视频资源在线| 香蒸焦蕉伊在线| 精品av久久707| 精品1卡二卡三卡四卡老狼| 色狠狠色噜噜噜综合网| 91精品国产九九九久久久亚洲| 超碰免费公开在线| 免费看污黄网站| www.日韩高清| 视频黄页在线| 日韩限制级电影在线观看| 国产性猛交普通话对白| 超碰在线91| 91人妻一区二区三区蜜臀| 亚洲人成影视在线观看| koreanbj精品视频一区| 国产九九在线视频| 69亚洲精品久久久蜜桃小说| 激情久久免费视频| 国产成人精品一区二区| 巨胸大乳www视频免费观看| 国产乱码精品一区二区三| 无码精品视频一区二区三区| 青青草97国产精品免费观看无弹窗版| 日本一区精品视频| 成人免费视频入口| 少妇饥渴放荡91麻豆| 香港三级韩国三级日本三级| 日本少妇高潮喷水xxxxxxx| 麻豆传媒在线完整视频| 亚洲高清国产精品| 亚洲人成色777777精品音频| 日韩av免费播放| 久久久美女艺术照精彩视频福利播放| 亚洲最大激情网| 91精品在线免费视频| 日本三级日本三级日本三级极| 欧美日韩色一区| 成年人免费高清视频| 91网免费观看| 日日天天狠狠| 少妇一级淫片免费放播放| 最近最新mv在线观看免费高清| 四虎在线看片| 久久无码人妻精品一区二区三区| 韩国三级av在线免费观看| 日本三级免费看| 成人网在线视频| 日本欧美一区二区三区不卡视频| 97在线观视频免费观看| 神马久久久久久久久久久| 国产免费xxx| 国产精品无码一区二区三| 欧美极品少妇xxxxⅹ免费视频| 狠狠操第一页| 欧美aaaaa成人免费观看视频| 亚洲成人基地| 色视频在线观看免费| 91久久精品| 日本视频一区二区在线观看| 国产91精品捆绑调教| 久久精品电影网站| 在线成人av| 久久大逼视频| 欧美日韩国产精选| 人妻熟妇乱又伦精品视频| 日韩国产精品久久久| 一级久久久久久| 国产精品嫩草影院av蜜臀| 亚洲91中文字幕无线码三区| 国产成人a亚洲精v品无码| 日本一区二区在线播放| 99国产精品久久久| 精品资源在线| 黄色一区三区| 亚洲成人最新网站| 日本美女在线中文版| 色哟哟免费在线观看| 亚洲伦理中文字幕| 色成年激情久久综合| 久久久另类综合| 放荡的美妇在线播放| 久久新电视剧免费观看| 欧美一级艳片视频免费观看| 性高湖久久久久久久久aaaaa| 欧美高清在线| 国产日韩欧美高清在线| 亚洲男人电影天堂| 国产福利在线观看| 亚洲欧美日韩国产综合在线| 精品人妻少妇AV无码专区| 一区二区高清视频| 中文字幕九色91在线| 最新国产成人av网站网址麻豆| 久久久久国产成人精品亚洲午夜| 欲求不满中文字幕| 欧美日韩国产精品一区二区三区| 欧美日韩电影一区| 洋洋成人永久网站入口| 免费观看成人性生生活片| 欧美在线观看成人| 亚洲人在线播放| 91av视频在线播放| 天天影视涩香欲综合网| 日韩电影免费观看高清完整| 三级av免费观看| av在线播放网址| 91麻豆免费在线视频| yy111111少妇影院日韩夜片| 日韩精品免费一区二区在线观看| 懂色av一区二区夜夜嗨| 久久99精品久久久久久琪琪| 青少年xxxxx性开放hg| 免费成人在线观看av| 日本黄色动态图| 久久99国产精品二区高清软件| 丝袜a∨在线一区二区三区不卡| 国产精品精品国产一区二区| 亚洲每日更新| 国产精品v日韩精品| 99久久99久久精品免费| 国产一区二区精品久久91| 免费又黄又爽又猛大片午夜| 成人免费视频a| 亚洲aa在线| 国产精品久久久久久亚洲伦| 国产亚洲欧美日韩一区二区| 亚洲精品国偷拍自产在线观看蜜桃| 日本a口亚洲| 猫咪在线永久网站| 精品伦理一区二区三区| 手机在线观看日韩av| gogo在线高清视频| 国产午夜精品视频一区二区三区| 欧美三级成人观看| 老司机午夜精品视频在线观看| 欧美性猛交内射兽交老熟妇| 国产精品美女一区二区| 香港三日本8a三级少妇三级99| 色哟哟无码精品一区二区三区| 天堂视频免费看| 久久久久久免费视频| 人妖欧美一区二区| 欧美在线看片a免费观看| 国产精品a久久久久久| 欧美日韩免费一区二区三区| 在线观看成人毛片| 国产盗摄在线观看| 久久精品国产99精品国产亚洲性色| 天天插天天操天天干| 456亚洲影院| 国产成人免费在线观看视频| 97视频在线观看免费高清完整版在线观看| 国产精品7777777| 特黄aaaaaaaaa真人毛片| 手机在线看片日韩| 精品激情国产视频| 欧美影院在线播放| 欧美牲交a欧美牲交aⅴ免费下载| 麻豆一区二区三区| 天天草夜夜操| 国产av 一区二区三区| 啦啦啦啦免费高清视频在线观看1| 日韩三级精品| 91成人在线观看国产| 一区二区三视频| 欧美精品一区在线观看| 国产美女三级视频| 成人黄色大片在线免费观看| 欧美视频一区二区三区| 成人福利电影| 中文字幕在线亚洲| 91桃色在线观看| 四虎影视一区二区| 久草网站在线观看| 一级做a爰片久久毛片| 欧美激情在线狂野欧美精品| 亚洲a级黄色片| 日韩av免费一区| 91麻豆精品国产91久久久更新资源速度超快| 亚洲精品在线二区| 无人日本免费视频| 精品婷婷色一区二区三区蜜桃| 无遮挡爽大片在线观看视频| wwwww在线观看免费视频| 国产精品人人妻人人爽| 天天色天天草天天射| 国产精品普通话对白| 高清美女视频一区| 国产在线视频欧美| 一级二级在线观看| 精品一区二区三区视频| 中文网丁香综合网| 午夜电影亚洲| 高清一区二区三区视频| 99久免费精品视频在线观看| 蜜桃视频一区二区三区| 丝袜美腿美女被狂躁在线观看| 精品久久久久久久久久久久久久久| 亚洲精品美女久久7777777| 日本不卡高字幕在线2019| 欧美日韩亚洲一区在线观看| 国产传媒在线| 欧美xxxx14xxxxx性爽| 一区二区三区产品免费精品久久75| 久久偷看各类女兵18女厕嘘嘘| 理论片日本一区| 欧美xxx另类| 动漫性做爰视频| 国语精品免费视频| 成人国产精品免费网站| 日韩一区二区中文字幕| 欧美图片激情小说| 欧美www视频在线观看| 国产综合色一区二区三区| 日本在线不卡一区| 在线手机中文字幕| 91产国在线观看动作片喷水| 成人18视频在线观看| 91精品国产经典在线观看| 国产伊人网av.| 免费成人性网站| 国产精品白浆流出视频| 久久国产精品免费一区二区三区| 精品综合久久88少妇激情| 亚洲视频欧美视频|