01:Comopser簡介和安裝-【包依賴管理】
- 網(wǎng)址:getcomposer.org
- 保存的文件夾:vendor目錄
- 安裝:
- mac:
- 下載會獲取到composer.phar這個文件
- 移動到環(huán)境變量目錄并改名:mv composer.phar /usr/local/bin/composer
- 移動到環(huán)境變量的目錄后,等于注冊了全局使用,并且已經(jīng)更改名字為:composer
- 那么可以直接再終端使用 composer前綴 后面跟隨命令即可
02:package引用和版本
- 項目下composer.json的寫法, 如何引入包得寫法
{
"require":{
"mustache/mustache":"2.9.0",//這里就是寫入包名字與具體版本號
//前面這個是vendor目錄的包得vendor name
//然后第2個同名的就對應包的名字,一般來說是這樣寫法
}
}
- 引入版本時候
~
號說明
- 例子:~2.8.1氛谜,那么范圍區(qū)間是2.8.1 to 2.9.0
- 例子:~2.8宴合,那么范圍區(qū)間就變成 2.8 to 3.0
-
~
號:代表一個區(qū)間渠啊,0--9
- 引入版本時候
^
號說明
- 例子:^2.8迷帜,那么代表是,2.8 到 3.0色洞,也就是說最大得版本號+1的點0版本戏锹,也就是2.8的2+1,.8變成.0
- 例子:今天實踐了下火诸,
^
號也可以理解成為安裝最新版本,下面例子就出現(xiàn)最新版的包了
{
"require":{
"mustache/mustache":"^2.7"
}
}
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing mustache/mustache (v2.11.1) Loading from cache
Writing lock file
Generating autoload files
- 可以直接再package網(wǎng)站進行搜索锦针,并且直接使用包得命令在終端直接下載
- composer require <vendorname>/<name> 這樣就可以下載了,但下載的是最新版
03:理解composer的install和update
- composer.json對應的是composer update
- composer.lock對應的是composer install置蜀,
- 注意:沒有l(wèi)ock文件composer就執(zhí)行json文件
04:composer自動加載簡單分析
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit23bbeae59271b037728c906bcb04be61::getLoader();
- 第二步:查看
autoload_real.php
伞插,目錄:vendor/composer/autoload_real.php
- 通過getLoader方法里的一個foreach進行注冊
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ( $map as $namespace => $path ) {
$loader->set($namespace,$path);
}
- 第三步:查看
autoload_namespaces.php
,目錄:vendor/composer/autoload_namespaces.php
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Mustache' => array($vendorDir . '/mustache/mustache/src'),
//src目錄下就按照以上的命名空間來操作
);
- 第四步:查看依賴包目錄下得composer.json文件盾碗,看它通過那個命名空間規(guī)范來加載
- 目錄:mustache/composer.json
- 通過psr-0規(guī)范標準
"autoload": {
"psr-0": { "Mustache": "src/" }
}
- 整條自動加載流程:
- 引入自動加載文件 autoload.php
- 自動執(zhí)行autoload_real.php中得方法getLoader()
- 方法中調(diào)用了autoload_namespaces.php進行返回一個數(shù)組媚污,到此自動加載命名空間 基本結(jié)束
- namespaces文件執(zhí)行的命名空間標準需要查看依賴包下得composer.json文件
05:Find A Package
- 在packagist.org進行搜索依賴包
- 再終端可以使用命令 :composer serach <包名>
- 顯示具體信息終端命令:composer --all <包名>
06:使用composer創(chuàng)建項目
- 常見命令 :composer create-project
- composer創(chuàng)建項目終端命令:composer create-project <原始名字>/<默認名字> <別名> <版本號>
07: Understanding Require Dev
- composer一個特點:require-dev--本地開發(fā)使用到得package
- 如果下載一個項目,并不需要dev環(huán)境中得package可以使用:composer install --no-dev來操作
- 所以上傳自己項目時候需要包含composer.lock這個文件
08:composer運行shell命令
- 網(wǎng)址:getcomposer.org/doc/articles/scripts.md下得command events看到具體命令
- 只需要在composer.json文件加上scipts這樣的引導數(shù)組即可廷雅,下面例子參考:
"scripts":{
"post-install-cmd":"echo 'hello'"
}
09:發(fā)布自己的Package
- 第一步:登陸github耗美,創(chuàng)建項目
- 第二步:終端git clone 項目地址
- 第三步:進入項目目錄,創(chuàng)建composer.json文件:執(zhí)行命令composer init即可
- 第四步:根據(jù)提示填寫完畢穿件composer.json
- package name <vendor>/<name>
- description
- author
- minimum stability
- package type
- license
- 第五步命令:git add .
- 第六步命令:git commit -m"更改的描述"
- 第七步命令:git push
- 第八步:發(fā)布到packaglist.org航缀,登陸自己的id
- 第九步:點擊右上角submit商架,然后粘貼github連接后,再點擊check
- 第十步:添加自動更新webhook
- 到 github項目芥玉,點擊settings
- 點擊左邊導航webhooks & services
- 點擊右邊的add services
- 搜索package
- 填寫user token蛇摸,token可以再packagist得profile找到
- 粘貼token,然后addservice
- 然后點擊生成出來的package出現(xiàn)畫面
- 點擊test service灿巧,出現(xiàn)ok表示成功
- 備注:綁定完成后赶袄,當你git提交更新后就會同步到package那邊了
最后編輯于 :
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者