Composer 是
PHP5.3
以上 的一個依賴管理工具
。它允許你聲明專案所依賴的程式碼庫,它會在你的專案中為你安裝他們。有了它我們就可以輕鬆的使用一個命令
將其他優秀程式碼引用到我們的專案中來。
java有maven
,前端有npm
,安卓有Gradle
,作為世界上最好的語言
也就有了composer
#composer require
:安裝一個軟體包composer update
:會偵測新版本套件所需的環境和依賴自動實作工具包的升級composer install
:如果沒有composer.json文件,會安裝composer.json中的依賴composer init
:會初始化一個composer.json設定檔在網站下方新建一個目錄,名稱為
##六、手寫一個composer套件
blog
- 。
- 1、目錄下執行:
- composer init
#執行完後,讓我們輸入一個套件名,我就叫
guangtouqiang/blog把。
套件名稱
name
2、執行對於需要發布的套件(庫),這是必須填寫的。
套件的名稱,它包括供應商名稱和項目名稱,使用 / 分隔。
- 例如,phpmailer/phpmailer
guangtouqiang/blog:
#接下來讓輸入描述。
描述description
一個套件的簡短描述。通常這個最長只有一行。
對於需要發布的套件(庫),這是必須填寫的。3、輸入描述
this is guangtouqiang test bag
- 4、
輸入作者名稱(可選)
#作者
authors這個物件必須包含以下的所有屬性。
name: 作者的姓名,通常使用真名。 email: 作者的 email 位址。
homepage: 作者首頁的 URL 位址。#########5、輸入最低穩定版本#########可用的穩定性標識:###dev、alpha、beta、RC、stable。 ###,一般選擇###dev###。 #########6、輸入套件類型############套件類型###type######
role: 該作者在此專案中擔任的角色(例:開發人員 或 翻譯)。
- 包的安装类型,默认为
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.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
测试一波:
输出:
注意命名空间的层级与文件夹层级是否相同,类名与文件名相同才能自动加载。
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詳細使用
更多composer相關技術文章,請造訪composer教學欄位!
以上是怎麼手寫composer包並上傳發布的詳細內容。更多資訊請關注PHP中文網其他相關文章!