日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

PHP 開發者該知道的5個 Composer 小技巧

瀏覽:134日期:2022-09-13 14:15:05

Composer是新一代的PHP依賴管理工具。其介紹和基本用法可以看這篇《PHP依賴管理工具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 update Writing 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

這會自動克隆倉庫,并檢出指定的版本。克隆庫的時候用這個命令很方便,不需要搜尋原始的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 --profile Memory usage: 3.94MB (peak: 4.08MB), time: 0s$ composer install --profile Loading 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 --profile Loading composer repositories with package informationInstalling dependencies from lock file - Installing twig/twig (v1.12.2) Loading from cache Generating 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%的性能損失。

標簽: PHP
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美亚洲激情| 欧美极品中文字幕| 麻豆国产一区| 日日摸夜夜添夜夜添国产精品| 亚洲福利免费| 日韩精品网站| 久久精品亚洲人成影院| 欧美sss在线视频| 午夜精品成人av| 久久精品国产68国产精品亚洲| 激情婷婷综合| 国产婷婷精品| 亚洲精品系列| 国产欧美亚洲精品a| 国产麻豆一区二区三区| 女人天堂亚洲aⅴ在线观看| 国产一在线精品一区在线观看| 99精品在线免费在线观看| 日本а中文在线天堂| 成人片免费看| 欧美1区2区3区| 久久av一区| 日韩专区视频网站| 日本视频一区二区| 欧美成人精品午夜一区二区| 国产不卡av一区二区| 韩国三级一区| 日韩一级不卡| 日本视频一区二区| 国产精品久久乐| 国产欧美激情| www.51av欧美视频| 久久aⅴ国产紧身牛仔裤| 久久国产婷婷国产香蕉| 亚洲深夜视频| 日韩在线观看一区二区| 国产亚洲久久| 神马午夜久久| 亚洲精一区二区三区| 精品视频免费| 亚洲欧洲日本mm| 日本久久一区| 日韩中文在线电影| 免费不卡在线视频| 国内揄拍国内精品久久| 99国产精品自拍| 国产视频一区二| 色婷婷色综合| 久久都是精品| 欧美激情视频一区二区三区免费 | 欧美亚洲一区二区三区| 国产91在线播放精品| 国产精品免费看| 国产精品啊啊啊| 国内激情久久| 开心激情综合| 石原莉奈一区二区三区在线观看| 欧美激情视频一区二区三区免费| 日韩精品免费一区二区三区| 亚洲精品亚洲人成在线观看| 女生影院久久| 日本伊人久久| 精品一区欧美| 免费在线亚洲欧美| 爽好多水快深点欧美视频| 成人在线超碰| 亚洲精品福利| re久久精品视频| 麻豆国产精品一区二区三区| 日韩中文字幕91| 免费在线小视频| 国产欧美在线观看免费| 在线视频亚洲| sm捆绑调教国产免费网站在线观看 | 高潮久久久久久久久久久久久久| 午夜亚洲福利在线老司机| 国产一区三区在线播放| 日韩在线观看中文字幕| 婷婷亚洲五月| 国产 日韩 欧美 综合 一区| 日韩激情综合| 免费观看久久av| zzzwww在线看片免费| 日韩精品视频在线看| 香蕉国产精品| 91欧美在线| 久久av导航| 日韩成人精品一区二区三区 | 日韩超碰人人爽人人做人人添| 国产91精品对白在线播放| 免费视频一区二区三区在线观看| 亚洲色图网站| 夜夜精品视频| 另类专区亚洲| 日本午夜精品久久久久| 中文日韩欧美| 国产精品av一区二区| 成人日韩精品| 精品国产亚洲一区二区三区在线| 日本不卡一二三区黄网| 婷婷亚洲综合| 亚洲高清不卡| 91精品韩国| 桃色av一区二区| 久久电影tv| 亚洲国产福利| 国产66精品| 日产午夜精品一线二线三线| 日本免费新一区视频| 亚洲人成毛片在线播放女女| 亚洲专区一区| 国产一区白浆| 欧洲毛片在线视频免费观看| 999国产精品视频| 久久久国产精品一区二区中文| 高清在线一区| 国产网站在线| 日本欧美国产| 日韩免费av| 激情亚洲影院在线观看| 日韩精品首页| 99久久精品国产亚洲精品| 日韩欧美一区二区三区免费观看| 国产精品激情| 日韩va亚洲va欧美va久久| 最新亚洲国产| 视频一区日韩精品| 蜜桃视频免费观看一区| 午夜宅男久久久| 亚洲少妇在线| 亚洲高清av| 国产偷自视频区视频一区二区| 国产偷自视频区视频一区二区| 日韩午夜av在线| 丝袜a∨在线一区二区三区不卡| 久久亚洲视频| 免费成人性网站| 日韩精品高清不卡| 欧美亚洲色图校园春色| 国产乱人伦丫前精品视频| 欧美交a欧美精品喷水| 97精品国产| 91精品国产91久久久久久黑人| 久久精品不卡| 免费在线欧美视频| 日本国产欧美| 九九久久国产| 在线一区视频观看| 国产农村妇女精品一区二区| 亚洲精品黄色| 精品日韩一区| 欧美精品资源| 久久不射中文字幕| 在线看片一区| 国产午夜精品一区在线观看| 丁香婷婷久久| 一区在线观看| 日韩va亚洲va欧美va久久| 精品丝袜久久| 国产综合视频| 欧美一区=区三区| 国产+成+人+亚洲欧洲在线| 黄页网站一区| 国产伦精品一区二区三区视频 | 日本在线视频一区二区| 国产麻豆精品| 亚洲不卡av不卡一区二区| 日韩一区二区免费看| 91欧美日韩在线| av日韩中文| 在线观看亚洲精品福利片| 国产精品成人一区二区网站软件| 中文一区一区三区高中清不卡免费| 婷婷综合亚洲| 欧美午夜三级| 久久精品91| 日韩国产在线观看一区| 国产欧美亚洲一区| 天堂网在线观看国产精品| 欧美一区成人| 亚洲二区免费| 国产精品综合| 91高清一区| 国产美女撒尿一区二区| 欧美不卡高清| 国产乱码精品一区二区亚洲| 久久美女精品| 日本特黄久久久高潮| 久久精品国产99久久| 91精品国产自产精品男人的天堂| 国产成人免费| 美国三级日本三级久久99| 国产日产精品一区二区三区四区的观看方式| 色综合五月天| 日韩在线网址| 香蕉精品久久| 久久av影院| 蜜臀国产一区二区三区在线播放| 精品久久99| 亚洲资源在线|