初始化项目
在一个空文件夹下,shell 中执行
composer init
根据提示选择对应选项生成composer.json,也可以选择手写composer.json
composer.json 注意事项
- 你开发的扩展包名就是
name属性
例如
"name": "sorry510/string", 包的名称就是sorry510/string, composer 的安装命令为composer require sorry510/string, 生成的文件所在目录为vendor/sorry510/string/中
{
"name": "your-vendor-name/package-name",
"description": "A short description of what your package does",
"type": "project",
"license": "MIT",
"minimum-stability": "stable",
"require": {}
}
- 按照
composer的psr-4规范,在文件中编写对应的namespace
例如
- 根目录下的
src目录下的Foo.php文件
<?php
namespace Sorry510;
class Foo {
}
- 为了实现自动加载机制,就需要在
composer.json文件中添加对应的autoload选项
"autoload": {
"psr-4": {
"Sorry510\\": "src/" // 填写namspace的映射目录,如果为根目录,直接写""
}
}
- laravel 扩展可以添加对应包自动发现,注册对应服务
"extra": {
"laravel": {
"providers": [
"Sorry510\\ConstantsProvider"
]
}
},
编写 php 代码
-
README.md文件,用于展示说明扩展包的使用方式 -
CHANGELOG.md, 用于展示版本变化记录 -
.gitignore文件,用于忽略git提交
注册到 Packagist 上
首先需要把项目上传到
github上,github项目名称自行创建,必须是public项目然后注册Packagist 账号
-
之后登录Packagist,点击右上角的
submit,在url中输入github中此项目的地址,然后点击check按钮
image.png git的tag功能可以生成不同版本号,在Packagist点击update就可以自动生成对应的版本
git tag 1.0.0
git push --tag
