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

首頁 > 開發 > PHP > 正文

composer.lock文件的作用

2024-05-04 23:42:44
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了composer.lock文件的作用,需要的朋友可以參考下
 

Composer的基本使用

在項目中使用composer.json

在項目中使用composer,你需要有一個composer.json文件,此文件的作用主要用來聲明包之間的相互關系和其他的一些元素標簽。


require 關鍵字

第一件事情在composer.json就是使用require關鍵字了,你將告訴composer哪些包是你項目所需要的

 

復制代碼代碼如下:

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

 

如你所見,require的對象將會映射包的名稱( monolog/monolog)和包的版本是1.0.*


包的命名

基本上包的命名是 主名/項目名稱( monolog/monolog),主名必須唯一,但是項目也就是我們的包的名稱可以有相同的,例如: igorw/json,和seldaek/json

包的版本

我們需要使用monolog的版本是1.0.*,他的意思是只要版本是1.0分支即可,例如1.0.0,1.0.2或者1.0.99

版本定義的兩種方式:

1. 標準的版本:定義保準的版本包文件,如:1.0.2
2. 一定范圍的版本:使用比較符號來定義有效的版本的范圍,有效的符號有>, >=, <,<=, !=
3. 通配符:特別的匹配符號*,例如1.0.*就相當于>=1.0,<1.1版本的即可
4. 下一個重要的版本:~符號最好的解釋就是,~1.2就相當于>1.2,<2.0,但~1.2.3就相當于>=1.2.3,<1.3版本。  

安裝包

在項目文件路徑下運行

復制代碼代碼如下:

$ composer install

 

這樣子他會自動下載monolog/monolog文件到你的vendor目錄下面。

接下來需要說明一件事情就是

composer.lock - 鎖定文件

在安裝完所有需要的包之后,composer會生成一張標準的包版本的文件在composer.lock文件中。這將鎖定所有包的版本。

使用composer.lock(當然是和composer.json一起)來控制你的項目的版本

這一點非常的重要,我們使用install命令來處理的時候,它首先會判斷composer.lock文件是否存在,如果存在,將會下載相對應的版本(不會在于composer.json里面的配置),這意味著任何下載項目的人都將會得到一樣的版本。

如果不存在composer.lock,composer將會通過composer.json來讀取需要的包和相對的版本,然后創建composer.lock文件

這樣子就可以在你的包有新的版本之后,你不會自動更新了,升級到新的版本,使用update命令即可,這樣子就能獲取最新版本的包并且也更新了你的composer.lock文件。

$ php composer.phar update
或者
$ composer update

Packagist(這應該就是composer,感覺有點像python的包,雖然沒那么強大,呵呵,有了這種標準以后,以后大家開發網站絕對會很輕松,可以借鑒很多人的代碼了,并且更加方便了?。?br /> Packagist是composer的主要倉庫,大家可以去看看,composer倉庫的基礎是包的源碼,你可以隨意的獲取,Packagist的目的建成一個任何人都可以使用的倉庫,這就意味著在你的文件中任意的require包了。

關于自動加載

為了方便的加載包文件,Composer自動生成了一個文件 vendor/autoload.php,你可以方便只有的使用它在任何你需要使用的地方
require 'vendor/autoload.php';

這意味著你可以非常非常方便的使用第三方代碼了,假設你的項目需要使用monlog,你直接使用吧,他們都已經自動加載了的!

 

復制代碼代碼如下:

$log = new Monolog/Logger('name');
$log->pushHandler(new Monolog/Handler/StreamHandler('app.log', Monolog/Logger::WARNING));
$log->addWarning('Foo');

 

當然你也可以在composer.json中加載自己的代碼:

 

復制代碼代碼如下:

{
    "autoload": {
        "psr-0": {"Acme": "src/"}
    }
}

 

composer將會把psr-0注冊為Acme的命名空間

你可以定義一個映射通過命名空間到文件目錄,src目錄是你的根目錄,vendor是同一級別的目錄,例如一個文件為:src/Acme/Foo.php就包含了Acme/Foo類

當你在增加autoload之后,你必須要重新install來生成vendor/autoload.php文件

在我們引用此文件的時候,將會返回一個autoloader類的實力,所以你可以把返回的值放入一個變量,然后在增加更多的命名空間,如果在開發環境下這是非常方便的,例如:

復制代碼代碼如下:

$loader = require 'vendor/autoload.php';
$loader->add('Acme/Test', __DIR__);

 

composer.lock文件的作用

install 命令從當前目錄讀取 composer.json 文件,處理了依賴關系,并把其安裝到 vendor 目錄下。

 

復制代碼代碼如下:

composer install

 

如果當前目錄下存在 composer.lock 文件,它會從此文件讀取依賴版本,而不是根據 composer.json 文件去獲取依賴。這確保了該庫的每個使用者都能得到相同的依賴版本。

如果沒有 composer.lock 文件,composer 將在處理完依賴關系后創建它。

為了獲取依賴的最新版本,并且升級 composer.lock 文件,你應該使用 update 命令。

 

復制代碼代碼如下:

composer update

 

這將解決項目的所有依賴,并將確切的版本號寫入 composer.lock。

如果你只是想更新幾個包,你可以像這樣分別列出它們:

 

復制代碼代碼如下:

composer update vendor/package vendor/package2

 

你還可以使用通配符進行批量更新:

 

復制代碼代碼如下:

composer update vendor/*


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女在线看| 日韩欧美大尺度| 欧美一区二区三区免费视| 国产精品久久久久久一区二区| 亚洲女人天堂色在线7777| 欧美大学生性色视频| 中文字幕日韩欧美精品在线观看| 亚洲欧美中文日韩在线| 亚洲免费视频观看| 日韩久久免费电影| …久久精品99久久香蕉国产| 亚洲人永久免费| 日韩在线国产精品| 欧美成人四级hd版| 久久天堂av综合合色| 欧美日韩美女在线| 国产一区二区三区免费视频| 久久精品电影网站| 奇米4444一区二区三区| 68精品久久久久久欧美| 欧美极品在线播放| 97成人超碰免| 综合136福利视频在线| 伊人久久男人天堂| 欧美精品在线观看91| 欧美大全免费观看电视剧大泉洋| 日本sm极度另类视频| 亚洲精品久久久久国产| 欧美日韩国产页| 欧美激情视频网址| 久久久久久久久久国产精品| 亚洲第一中文字幕在线观看| 97超级碰碰人国产在线观看| 欧美尺度大的性做爰视频| 91av视频在线播放| 中文字幕在线精品| 亚洲黄色片网站| 国产精品一区二区久久| 日韩精品中文字幕久久臀| 成人国产精品免费视频| 亚洲精品aⅴ中文字幕乱码| 国产精品女人久久久久久| 久久久久久免费精品| 懂色av影视一区二区三区| 国产精品久久久久久久久久小说| 北条麻妃一区二区在线观看| 国精产品一区一区三区有限在线| 亚洲色图五月天| 国产日韩欧美日韩大片| 5566成人精品视频免费| 亚洲色图欧美制服丝袜另类第一页| www.欧美免费| 亚洲欧美中文字幕在线一区| 成人激情视频在线播放| 亚洲在线观看视频网站| 欧美日韩国产在线| 亚洲自拍在线观看| 日韩精品免费一线在线观看| 精品久久久久久国产| 国产在线观看91精品一区| 欧美激情手机在线视频| 欧美日韩一区二区免费视频| 欧美性视频在线| 亚洲女人天堂成人av在线| 久久久久久久一区二区| 91麻豆国产精品| 日韩免费观看网站| 亚洲精品第一国产综合精品| 狠狠久久亚洲欧美专区| 在线精品视频视频中文字幕| 国产精品久久久av久久久| 尤物yw午夜国产精品视频明星| 国内精品模特av私拍在线观看| 日韩电影免费在线观看| 97视频网站入口| 午夜精品一区二区三区在线播放| 亚洲天堂影视av| 日本sm极度另类视频| 亚洲午夜未满十八勿入免费观看全集| 成人欧美一区二区三区黑人| 欧美一级bbbbb性bbbb喷潮片| 精品福利樱桃av导航| 黑丝美女久久久| 欧美性受xxx| www.日韩av.com| 国产一区二区三区在线看| 久久这里有精品| 亚洲精品白浆高清久久久久久| 日韩av免费在线| 91国内揄拍国内精品对白| 色综合久久悠悠| 亚洲成人精品视频在线观看| 久久久国产精品视频| 精品国产乱码久久久久久虫虫漫画| 韩国国内大量揄拍精品视频| 日韩成人在线免费观看| 国产日韩精品综合网站| 欧美黑人极品猛少妇色xxxxx| 国产精品精品国产| 66m—66摸成人免费视频| 欧美日本在线视频中文字字幕| 欧美华人在线视频| 亚洲欧美中文日韩在线| 亚洲无亚洲人成网站77777| 日韩亚洲欧美中文在线| 九九久久久久久久久激情| 欧美巨大黑人极品精男| 国产欧美精品一区二区三区-老狼| 茄子视频成人在线| 日韩欧美一区视频| 欧美精品video| 国产精品第一页在线| 成人欧美一区二区三区黑人孕妇| 国产精品久久久久久久久| 中文字幕亚洲一区二区三区五十路| 欧美久久精品午夜青青大伊人| 欧美乱人伦中文字幕在线| 精品露脸国产偷人在视频| 欧美男插女视频| 欧洲亚洲妇女av| 中文字幕综合一区| 国产精品美女免费视频| 欧美在线视频观看| 日韩中文字幕网| 国产精品伦子伦免费视频| 国产日韩欧美另类| 久久伊人色综合| 欧美高跟鞋交xxxxhd| 国内精品久久久久影院 日本资源| 久久影视电视剧免费网站清宫辞电视| 日本亚洲欧洲色| 亚洲精品国精品久久99热| 国产成人精彩在线视频九色| 亚洲精品久久久一区二区三区| 国产精品黄色影片导航在线观看| 国产91精品久| 69影院欧美专区视频| 日韩欧美精品网站| 国产精品一区二区三区成人| 欧美激情亚洲自拍| 日韩电影在线观看永久视频免费网站| 黄色成人在线免费| 国产91免费观看| 亚洲最大激情中文字幕| 青青草原成人在线视频| 亚洲乱码国产乱码精品精天堂| 亚洲欧美另类国产| 日韩精品日韩在线观看| 成人激情综合网| 91免费精品国偷自产在线| 欧美专区福利在线| 在线看福利67194| 国产亚洲精品美女久久久| 欧美视频二区36p| 国模叶桐国产精品一区| 8x海外华人永久免费日韩内陆视频| 欧美xxxx18性欧美| 欧美www在线| 上原亚衣av一区二区三区| 欧洲美女7788成人免费视频| 国产亚洲一区精品| 国产综合在线观看视频| 国产精品视频yy9099| 青青草成人在线|