初始化扩展包
在项目目录下执行命令:
composer init
#跟随提示依次输入以下内容后回车:
#包的名称,不输入任何内容直接回车,则直接使用 "[]" 内的内容,下同
Package name (<vendor>/<name>) [administrator/test]:
#包的描述
Description []:
#作者信息
Author [administrator <administrator@example.com>, n to skip]:
#
Minimum Stability []:
#
Package Type (e.g. library, project, metapackage, composer-plugin) []:
#
License []:
#定义依赖项,如果不需要依赖其他扩展则直接输入 n 回车
Define your dependencies.
Would you like to define your dependencies (require) interactively [yes]? n
Would you like to define your dev dependencies (require-dev) interactively [yes]? n
#生成之前的最后确认,直接回车即可
{
"name": "administrator/test",
"authors": [
{
"name": "fudonghui",
"email": "fdhjyx@gmail.com"
}
],
"require": {}
}
Do you confirm generation [yes]?
经过以上步骤,在当前项目目录就生成了 composer.json
文件
设置环境要求
修改 composer.json
文件
{
"name": "administrator/test",
"authors": [
{
"name": "administrator",
"email": "administrator@example.com"
}
],
"require": {
"php": ">=7.0"
},
}
设置自动加载
修改 composer.json
文件
{
"name": "administrator/test",
"authors": [
{
"name": "administrator",
"email": "administrator@example.com"
}
],
"require": {
"php": ">=7.0"
},
"autoload": {
"psr-4": {
"Test\\": "src/"
}
}
}
测试安装
执行安装命令 composer install
会在 vendor/composer/autoload_psr4.php
中生成命名空间和目录的映射关系
提交代码到 github
增加 .gitignore
为 git
忽略一些文件,增加 readme.md
为项目增加描述,然后提交代码到 github
.idea
vendor/
composer.lock
安装自己的扩展
没有提交到 packagist 上之前,需要在 composer.json
中指定 repositories
申明来源:
{
"repositories": [
{
"type": "git",
"url": "https://github.com/username/hello-world.git"
}
],
"require": {
"administrator/test": "dev-master"
}
}
dev-master
表示安装的是 master 分支
github 创建标签后可以通过版本号安装,例如创建标签 v1.0.0
后通过 "administrator/test": "1.0.0"
安装
TortoiseGit 创建标签后,需要推送到服务器(推送时勾选 “包括标签”)
此种方式可以安装任何常见的版本库,而不仅仅是 github,并且可以安装 private 库,在安装时需要输入对应的账号和密码
提交项目到 packagist.org
访问 https://packagist.org/packages/submit (需要注册后登陆),将自己的项目地址粘贴,点击check,然后点击submit,至此,自己的composer包就提交成功了
设置自动更新扩展包(即当我们更新扩展包提交到GitHub时,Packagist自动更新)简化步骤如下:
- 去个人中心页面拿到自己的api令牌
- 去当前包在GitHub的地址,点击设置,点击集成和服务,点击添加Packagist服务并配置你的API令牌,以及你的Packagist用户名和账号对应域名
- 选择active,点击add service
- 设置自动更新结束,之后你更改了自己包扩展的代码提交到GitHub后,很短的时间差就会同步到Packagist
使用 github 账号关联注册的 packagist 账号无需只需要提交,不需要额外设置即可自动更新
此种方式必须是 public 库