小編給大家分享一下composer中install和update有哪些區(qū)別,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
然而,對于如何『安裝他們』,新手可能并不清楚。
網(wǎng)上的答案有的說 composer install,有的說composer update,而這兩者似乎都能成功把依賴下載下來并安裝好,那么他們究竟有何區(qū)別呢?
相關
首先要搞清楚的一件事情是,所有的依賴都定義在composer.json中,手冊中給出了一些基本用法和例子。你可能已經(jīng)注意到,在指定版本號的時候,我們并不一定要指明一個精確的版本。那么就有可能發(fā)生這么一個情況,對于同一份composer.json,我們在不同時刻拉取到的依賴文件可能不同(因為composer會在滿足條件的情況下去拉取新的那份依賴),從而導致一些異常情況。
composer update和composer install正是為了解決這個問題而出現(xiàn)的。
當你執(zhí)行composer update的時候,composer會去讀取composer.json中指定的依賴,去分析他們,并且去拉取符合條件新版本的依賴。然后他會把所拉取到的依賴放入vendor目錄下,并且把所有拉取的依賴的精確版本號寫入composer.lock文件中。
composer install所執(zhí)行的事情非常類似,只在第一步的時候有差別。當你本地如果已經(jīng)存在一份composer.lock時,它將會去讀取你的composer.lock而非composer.json,并且以此為標準去下載依賴。當你本地沒有composer.lock的時候,它所做的事情和composer update其實并沒有區(qū)別。
這意味著,只要你本地有一份composer.lock,你就可以保證無論過去了多久,你都能拉到相同的依賴。而如果你把它納入你的項目的版本控制中,那么你就可以確保你項目中的每一個人、每一臺電腦,不管什么系統(tǒng),都能拉取到一模一樣的依賴,以減少潛在的依賴對部署的影響。當然,請記得,你應該使用的命令是composer install。
那什么時候該使用composer update呢?當你修改了你的依賴關系,不管是新增了依賴,還是修改了依賴的版本,又或者是刪除了依賴,這時候如果你執(zhí)行composer install的時候,是不會有任何變更的,但你會得到一個警告信息
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
有人可能會很好奇php是怎么知道我修改了依賴,或者composer.lock已經(jīng)過期了。很簡單,如果你打開composer.lock的話,會發(fā)現(xiàn)其中有一個hash字段,這就是當時對應的那份依賴的哈希值。如果值不一致自然而然就知道發(fā)生了變更了。
這時候,你應該去通過composer update來更新下你的依賴了。
如果你不希望影響別的已經(jīng)安裝的依賴,僅僅更新你修改的部分,那你可以通過指定白名單來確定要更新的范圍,例如composer update monolog/monolog僅會更新monolog/monlog這個依賴,別的依賴哪怕有更新也會被忽略。
以上是“composer中install和update有哪些區(qū)別”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文題目:composer中install和update有哪些區(qū)別-創(chuàng)新互聯(lián)
當前URL:http://chinadenli.net/article24/dgdcje.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、品牌網(wǎng)站制作、移動網(wǎng)站建設、網(wǎng)站設計公司、網(wǎng)站營銷、網(wǎng)站設計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容