安裝類庫之前一定要先切換成中國鏡像鞭莽,否則會超級久饲梭,或是沒反應(yīng)险绘!
composer解析:
composer.json文件:
{
? ? "require":{
? ? ? ? "廠商/類庫名字":"版本號"
? ? ?}
}
composer.json與composer.lock的作用:
使用composer.lock(當(dāng)然是和composer.json一起)來控制你的項(xiàng)目的版本玉雾。
這一點(diǎn)非常的重要跨算,我們使用install命令來處理的時(shí)候帆疟,它首先會判斷composer.lock文件是否存在鹉究,如果存在,將會下載相對應(yīng)的版本(不會在于composer.json里面的配置)踪宠,這意味著任何下載項(xiàng)目的人都將會得到一樣的版本坊饶。
如果不存在composer.lock,composer將會通過composer.json來讀取需要的包和相對的版本殴蓬,然后創(chuàng)建composer.lock文件匿级,這樣子就可以在你的包有新的版本之后,你不會自動更新了染厅,升級到新的版本痘绎,使用update命令即可,這樣子就能獲取最新版本的包并且也更新了你的composer.lock文件肖粮。
使用流程:
(全局安裝)
1.安裝孤页,詳情見http://docs.phpcomposer.com/00-intro.html#Introduction;
2.安裝步驟完成后涩馆,進(jìn)入到步驟二:在你的項(xiàng)目下使用(下載所需的軟件包)行施;
3.在你的項(xiàng)目的根目錄中新建一個(gè)composer.json文件,里面寫好你所需的軟件包魂那,像這樣:
{
? ? "require":{
? ? ? ? "monolog/monolog":"1.0.*"
? ? }
}
然后進(jìn)入安裝軟件包的步驟蛾号;
4.安裝軟件包之前先將composer切換成中國鏡像
命令為:composer?config?-g?repo.packagist?composer?https://packagist.phpcomposer.com
5.配置好中國鏡像后,再通過命令行進(jìn)入到你項(xiàng)目的根目錄中涯雅;
6.進(jìn)入到項(xiàng)目中后鲜结,執(zhí)行composer install命令,這時(shí)只要等待就好,完成精刷!
7.這時(shí)你的項(xiàng)目根目錄就像這樣
8.但是若要添加多個(gè)類庫呢拗胜,像這樣
我又多加了一個(gè)smarty類庫,如果此時(shí)我們依然直接執(zhí)行composer install命令的話怒允,則會報(bào)錯(cuò)的埂软,因?yàn)槟愕腸omposer.lock文件是沒有更新的;
9.此時(shí)是報(bào)錯(cuò)的情形纫事,這時(shí)你只要再輸入composer update命令就好啦仰美,所以完整的添加第二個(gè)類庫的流程是:
1):先修改composer.json文件,往其中加入你所需的類庫信息儿礼;
2):再在命令行中直接輸入composer update就好啦?г印(也就是說,除了第一次加入類庫時(shí)是執(zhí)行composer install蚊夫,其他時(shí)候再次添加的話就是直接更新就好了composer update)
10.卸載類庫诉字,只需要執(zhí)行一條命令即可,如:composer remove phpmailer/phpmailer
最后知纷,在你項(xiàng)目的入口文件像index.php中壤圃,加上一句:require(__DIR__.'/vendor/autoload.php');
這時(shí)你就可以非常方便的使用你加載的類庫了!
當(dāng)然你也可以在composer.json中加載自己的代碼:
{
? ? "autoload": {
? ? ? ? "psr-0": {"Acme": "src/"}
? ? }
}
composer將會把psr-0注冊為Acme的命名空間
你可以定義一個(gè)映射通過命名空間到文件目錄琅轧,src目錄是你的根目錄伍绳,vendor是同一級別的目錄,例如一個(gè)文件為:src/Acme/Foo.php就包含了Acme\Foo類
當(dāng)你在增加autoload之后乍桂,你必須要重新install來生成vendor/autoload.php文件
在我們引用此文件的時(shí)候冲杀,將會返回一個(gè)autoloader類的實(shí)力,所以你可以把返回的值放入一個(gè)變量睹酌,然后在增加更多的命名空間权谁,如果在開發(fā)環(huán)境下這是非常方便的,例如:
$loader = require 'vendor/autoload.php';
$loader->add('Acme\Test', __DIR__);
(持續(xù)更新中)