一、關於composer
Composer 是
PHP5.3
以上 的一個依賴管理工具
。它允許你宣告專案所依賴的程式碼庫,它會在你的專案中為你安裝他們。有了它我們就可以輕鬆的使用一個命令
將其他優秀程式碼引用到我們的專案中來。
二、依賴包管理工具
java有maven
,前端有npm
,安卓有Gradle
,作為世界上最好的語言
也就有了composer
三、composer的優勢
- 你有一個專案依賴於若干個庫。
- 其中一些庫依賴於其他庫。
- 你宣告你所依賴的東西。
- Composer 會找出哪個版本的包需要安裝,並安裝它們(將它們下載到你的專案中)。
四、composer常用命令
composer require
:安裝一個軟體包composer update
:會檢測新版本包需要的環境和依賴自動實現工具包的升級composer install
:如果沒有composer.json檔案,會安裝composer.json中的依賴composer init
:會初始化一個composer.json配置檔案五、composer的安裝
參照菜鳥教程
六、手寫一個composer包
在站點下新建一個目錄,名為blog
。
1、目錄下執行:composer init
執行完後,讓我們輸入一個包名,我就叫guangtouqiang/blog
把。
包名
name
- 包的名稱,它包括供應商名稱和專案名稱,使用 / 分隔。
- 對於需要釋出的包(庫),這是必須填寫的。
- 例如,phpmailer/phpmailer
2、執行guangtouqiang/blog
:
接下來讓輸入描述。
描述
description
- 一個包的簡短描述。通常這個最長只有一行。
- 對於需要釋出的包(庫),這是必須填寫的。
3、輸入描述this is guangtouqiang test bag
4、輸入作者名稱(可選)
作者
authors
- 這個物件必須包含以下的所有屬性。
- name: 作者的姓名,通常使用真名。
- email: 作者的 email 地址。
- homepage: 作者主頁的 URL 地址。
- role: 該作者在此專案中擔任的角色(例:開發人員 或 翻譯)。
5、輸入最低穩定版本
可用的穩定性標識:dev、alpha、beta、RC、stable。
,一般選擇dev
。
6、輸入包型別
包型別
type
- 包的安裝型別,預設為
library。
- library: 這是預設型別,它會簡單的將檔案複製到 vendor 目錄。
- project: 這表示當前包是一個專案,而不是一個庫。例:框架應用程式 Symfony standard edition,內容管理系統 SilverStripe installer 或者完全成熟的分散式應用程式。使用 IDE 建立一個新的工作區時,這可以為其提供專案列表的初始化。
- metapackage: 當一個空的包,包含依賴並且需要觸發依賴的安裝,這將不會對系統寫入額外的檔案。因此這種安裝型別並不需要一個 dist 或 source。
- composer-plugin: 一個安裝型別為 composer-plugin 的包,它有一個自定義安裝型別,可以為其它包提供一個 installler。詳細請檢視 自定義安裝型別。
預設為 library
我們選擇1,library
即可!
7、需要輸入開源協議
選擇輸入GPL,LGPL,BSD,MIT,Apache
這些開源協議即可:
8、是否依賴於其它包,是否依賴於其它環境,這邊都yes即可。
Search for a package
:選擇搜尋php。
9、生成成功。
此時,目錄下已經有個composer
這些配置:
七、composer目錄的修改
看下剛剛生成的composer.json
:
{
"name": "guangtouqiang/blog",
"description": "this is guangtouqiang test bag",
"type": "1",
"require": {
"php": "^7.0"
},
"license": "Apache-2.0",
"authors": [
{
"name": "guangtouqiang",
"email": "xiaozhengguo521@gmail.com"
}
],
"minimum-stability": "dev"
}
再次基礎上增加:
{
"name": "guangtouqiang/blog",
"description": "this is guangtouqiang test bag",
"type": "1",
"require": {
"php": "^7.0"
},
"license": "Apache-2.0",
"authors": [
{
"name": "guangtouqiang",
"email": "xiaozhengguo521@gmail.com"
}
],
"minimum-stability": "dev",
"autoload": {
"psr-4": {
"guangtouqiang\\": "src/guangtouqiang"
}
}
}
命令列執行:composer dump-autoload
,更新composer的名稱空間與資料夾對映關係。
同樣,需要新建一個src
和guangtouqiang
的資料夾:
在根目錄新建個index.php
測試一波:
輸出:
注意名稱空間的層級與資料夾層級是否相同,類名與檔名相同才能自動載入。
八、將寫好的composer包上傳
1、在github上新建個倉庫
2、將本地的composer包上傳到新倉庫
git init
git add .
git commit -m "xxx"
git remote add origin 你的遠端倉庫地址
git push -u origin master
3、登入https://packagist.org/packages/submit
4、將你github上的倉庫地址複製進去:
5、配置webhook:
6、複製上圖地址到github。
新增webhook
:
這時候,github倉庫與packagist已經建立了關聯。但是還需要進行釋出正式版本才能使用。
7、打版本標籤
git tag -a v1.0.1 -m "第一版"
git push origin v1.0.1
此時,已經標籤成功了,從packagist能看到我們所有的版本。
執行composer require xx/xxx
就能供別人使用啦。
九、總結
關於composer.json詳細描述請參照:composer.json詳細使用
本作品採用《CC 協議》,轉載必須註明作者和本文連結