亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHPer 需要了解的 5 個 Composer 小技巧

2024-05-04 23:24:57
字體:
來源:轉載
供稿:網友
本文介紹使用Composer的五個小技巧,希望能給你的PHP開發帶來方便。
 
 

Composer是新一代的PHP依賴管理工具。其介紹和基本用法可以看這篇《PHP管理依賴(dependency)關系工具 Composer 安裝與使用》。本文介紹使用Composer的五個小技巧,希望能給你的PHP開發帶來方便。

1. 僅更新單個庫

只想更新某個特定的庫,不想更新它的所有依賴,很簡單:

composer update foo/bar

此外,這個技巧還可以用來解決“警告信息問題”。你一定見過這樣的警告信息:

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.

擦,哪里出問題了?別驚慌!如果你編輯了composer.json,你應該會看到這樣的信息。比如,如果你增加或更新了細節信息,比如庫的描述、作者、更多參數,甚至僅僅增加了一個空格,都會改變文件的md5sum。然后Composer就會警告你哈希值和composer.lock中記載的不同。

那么我們該怎么辦呢?update命令可以更新lock文件,但是如果僅僅增加了一些描述,應該是不打算更新任何庫。這種情況下,只需update nothing:

$ composer update nothingLoading composer repositories with package informationUpdating dependenciesNothing to install or updateWriting lock fileGenerating autoload files

這樣一來,Composer不會更新庫,但是會更新composer.lock。注意nothing并不是update命令的關鍵字。只是沒有nothing 這個包導致的結果。如果你輸入foobar,結果也一樣。

如果你用的Composer版本足夠新,那么你可以直接使用--lock選項:

composer update --lock

2. 不編輯composer.json的情況下安裝庫

你可能會覺得每安裝一個庫都需要修改composer.json太麻煩,那么你可以直接使用require命令。

composer require "foo/bar:1.0.0"

這個方法也可以用來快速地新開一個項目。init命令有--require選項,可以自動編寫composer.json:(注意我們使用-n,這樣就不用回答問題)

$ composer init --require=foo/bar:1.0.0 -n$ cat composer.json{  "require": {    "foo/bar": "1.0.0"  }}

3. 派生很容易

初始化的時候,你試過create-project命令么?

composer create-project doctrine/orm path 2.2.0

這會自動克隆倉庫,并檢出指定的版本??寺斓臅r候用這個命令很方便,不需要搜尋原始的URI了。

4. 考慮緩存,dist包優先

最近一年以來的Composer會自動存檔你下載的dist包。默認設置下,dist包用于加了tag的版本,例如"symfony/symfony": "v2.1.4",或者是通配符或版本區間,"2.1.*"或">=2.2,<2.3-dev"(如果你使用stable作為你的minimum-stability。

dist包也可以用于諸如dev-master之類的分支,Github允許你下載某個git引用的壓縮包。為了強制使用壓縮包,而不是克隆源代碼,你可以使用install和update的--prefer-dist選項。

下面是一個例子(我使用了--profile選項來顯示執行時間):

$ composer init --require="twig/twig:1.*" -n --profileMemory usage: 3.94MB (peak: 4.08MB), time: 0s$ composer install --profileLoading composer repositories with package informationInstalling dependencies - Installing twig/twig (v1.12.2)  Downloading: 100%Writing lock fileGenerating autoload filesMemory usage: 10.13MB (peak: 12.65MB), time: 4.71s$ rm -rf vendor$ composer install --profileLoading composer repositories with package informationInstalling dependencies from lock file - Installing twig/twig (v1.12.2)  Loading from cacheGenerating autoload filesMemory usage: 4.96MB (peak: 5.57MB), time: 0.45s

這里,twig/twig:1.12.2的壓縮包被保存在~/.composer/cache/files/twig/twig/1.12.2.0-v1.12.2.zip。重新安裝包時直接使用。

5. 考慮修改,源代碼優先

當你需要修改庫的時候,克隆源代碼就比下載包方便了。你可以使用--prefer-source來強制選擇克隆源代碼。

composer update symfony/yaml --prefer-source

接下來你可以修改文件:

composer status -vYou have changes in the following dependencies:/path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml:  M Dumper.php

當你試圖更新一個修改過的庫的時候,Composer會提醒你,詢問是否放棄修改:

$ composer updateLoading composer repositories with package informationUpdating dependencies - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0)  The package has modified files:  M Dumper.php  Discard changes [y,n,v,s,?]?

為生產環境作準備

最后提醒一下,在部署代碼到生產環境的時候,別忘了優化一下自動加載:

composer dump-autoload --optimize

安裝包的時候可以同樣使用--optimize-autoloader。不加這一選項,你可能會發現20%到25%的性能損失。

如果你需要幫助,或者想要了解某個命令的細節,你可以閱讀官方文檔,或者查看JoliCode做的這個交互式備忘單。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品久久久久久久久久久久久| 亚洲精品国偷自产在线99热| 欧美性xxxxxx| 色噜噜亚洲精品中文字幕| 日韩欧美在线中文字幕| 中文字幕在线成人| 日韩亚洲欧美中文高清在线| 欧美裸身视频免费观看| 国产成人鲁鲁免费视频a| 久青草国产97香蕉在线视频| 日韩欧美中文字幕在线播放| 欧美日韩aaaa| 国产精品va在线播放| 日韩在线视频免费观看高清中文| 亚洲精品欧美日韩| 国产亚洲精品久久| 日韩精品中文字幕视频在线| 精品亚洲国产视频| 在线精品视频视频中文字幕| 第一福利永久视频精品| 亚洲国产精品999| 按摩亚洲人久久| 欧美日韩国产综合视频在线观看中文| 日韩精品中文字幕在线| 欧美一区三区三区高中清蜜桃| 成人国产精品久久久久久亚洲| xvideos亚洲| 91在线观看免费高清完整版在线观看| 自拍亚洲一区欧美另类| 亚洲片在线资源| 亚洲电影免费观看高清完整版在线| 欧美高清在线视频观看不卡| 中日韩美女免费视频网址在线观看| 欧美精品久久久久久久| 色综合伊人色综合网| 91中文在线视频| 中文字幕久久亚洲| 欧美性xxxx18| 国产在线视频一区| 亚洲国产成人久久综合| 亚洲精品电影网在线观看| 午夜剧场成人观在线视频免费观看| 狠狠躁夜夜躁人人躁婷婷91| 久久亚洲国产精品| 亚洲国产精品一区二区三区| 欧美在线激情视频| 狠狠久久亚洲欧美专区| 久久国产精品电影| 精品国产乱码久久久久久虫虫漫画| 国产成人91久久精品| 国产精品久久久久av| 国产一区二区三区在线播放免费观看| 国产精品免费观看在线| 久久国产视频网站| 国产精品久久久久久av| 国产成+人+综合+亚洲欧洲| 亚洲日本中文字幕免费在线不卡| 日韩美女av在线| 亚洲最大av网| 亚洲精品国精品久久99热| 国产精品青草久久久久福利99| 欧美性生交xxxxx久久久| 欧美色欧美亚洲高清在线视频| 国产精品久久久久999| 精品久久久久久久久久久久久| 免费av一区二区| 国产欧美精品日韩精品| 久久人人爽亚洲精品天堂| 亚洲美女视频网站| 欧美亚洲国产精品| 2019亚洲日韩新视频| 国产精品极品美女在线观看免费| 国产精品福利在线| 亚洲国产日韩欧美综合久久| 国语自产精品视频在免费| 日韩成人激情影院| 日韩美女激情视频| 欧美激情影音先锋| 日本亚洲精品在线观看| 欧美电影免费观看大全| 神马国产精品影院av| 日韩一区二区三区xxxx| 日韩av电影在线免费播放| 91久久久久久久久| 欧美性猛交xxxx黑人猛交| 亚洲国产精久久久久久| 久久成人国产精品| 国产一区在线播放| 久久久久久999| 亚洲免费福利视频| 日韩欧美精品免费在线| 亚洲一区二区三区成人在线视频精品| 热久久视久久精品18亚洲精品| 欧美电影院免费观看| 国产精品久久久久久久久久ktv| 8x海外华人永久免费日韩内陆视频| 久久视频精品在线| 一本一本久久a久久精品牛牛影视| 国产精品美女久久久免费| 2019国产精品自在线拍国产不卡| 中文字幕欧美专区| 国产日韩视频在线观看| 亚洲mm色国产网站| 欧美综合在线第二页| 亚洲国产天堂网精品网站| 国产亚洲人成a一在线v站| 另类少妇人与禽zozz0性伦| 蜜臀久久99精品久久久久久宅男| 亚洲毛片在线观看.| 久久精品国产91精品亚洲| 日韩av在线免费| 热草久综合在线| 国产精品爽爽爽爽爽爽在线观看| 国产精品美女999| 欧美黑人性生活视频| 国产成人小视频在线观看| 91老司机精品视频| 欧美日韩一区二区在线播放| 久久久成人av| 久久久久久com| 国产精品96久久久久久又黄又硬| 日韩欧美高清在线视频| 欧美精品在线第一页| 日韩电影网在线| 成人久久18免费网站图片| 久久91亚洲精品中文字幕| 欧美www视频在线观看| 4438全国亚洲精品在线观看视频| 亚洲第一中文字幕| 日韩有码视频在线| 欧美激情精品久久久久久黑人| 国产精品色视频| 国产亚洲aⅴaaaaaa毛片| 亚洲国产三级网| 中文字幕亚洲欧美日韩在线不卡| 国产精品一区二区三区在线播放| www.色综合| 最新国产成人av网站网址麻豆| 亚洲一区二区三区成人在线视频精品| 91久久在线视频| 深夜福利日韩在线看| 久久夜色精品国产亚洲aⅴ| 亚洲精品ady| 欧美电影《睫毛膏》| 日韩精品极品视频免费观看| 日韩av一区在线观看| 成人国产在线视频| 97免费中文视频在线观看| 亚洲理论在线a中文字幕| 国产日韩在线一区| 欧美在线视频在线播放完整版免费观看| 国模精品一区二区三区色天香| 亚洲成人av中文字幕| 在线观看国产精品淫| 裸体女人亚洲精品一区| 亚洲中国色老太| 91精品久久久久久久久久另类| 97香蕉久久超级碰碰高清版| 91精品国产亚洲| 亚洲精品国产精品自产a区红杏吧| 欧美激情综合色综合啪啪五月| 日韩免费在线看| 欧美国产极速在线| 91精品久久久久久久久青青|