技术饭
php语言composer包的开发与发布
php语言composer包的开发与发布,在php开发过程中最常见的就是composer包了。composer管理代码比较方便,对后续的开发大大提升了效率,降低了成本,而且如果作为开源的也可以提供给其他第三方使用,那么如何制作自己的composer包呢?步骤还是相对简单。
一、制作git仓库
可以去gitee、github创建一个仓库,生成 .gitignore,过滤不必要的文件
.gitignore内容:
vendor/
.composer.lock
composer.lock
.phpunit.result.cache
.idea/
拉取git:git clone https://gitee.com/copylian/xxx.git
二、初始化composer
切换到git仓库目录,初始化composer
PS E:\www\testcomposer> composer init
This command will guide you through creating your composer.json config.
# 1. 输入项目命名空间
# 注意<vendor>/<name> 必须要符合 [a-z0-9_.-]+/[a-z0-9_.-]+
Package name (<vendor>/<name>) [root/test_composer]:yourname/projectname
# 2. 项目描述
Description []:这是一个测试composer init 项目
# 3. 输入作者信息,直接回车可能出现如下提示,有的系统可以直接回车
Invalid author string. Must be in the format: John Smith <john@example.com>
# 3.1. 注意必须要符合 John Smith <john@example.com>
Author [, n to skip]: John Smith <john@example.com>
# 4. 输入最低稳定版本,stable, RC, beta, alpha, dev
Minimum Stability []:dev
# 5. 输入项目类型
Package Type (e.g. library, project, metapackage, composer-plugin) []:library
# 6. 输入授权类型
License []:MIT
Define your dependencies.
# 7. 输入依赖信息
Would you like to define your dependencies (require) interactively [yes]?
# 7.1. 如果需要依赖,则输入要安装的依赖
Search for a package:php
# 7.2. 输入版本号Enter the version constraint to require (or leave blank to use the latest version): >=8.1
# 如需多个依赖,则重复以上两个步骤(7.1/8.2)
Search for a package:
# 8. 是否需要require-dev
Would you like to define your dev dependencies (require-dev) interactively [yes]?
{
"name": "copylian/waybill", # 这是后续composer加载的名称
"description": "waybill",
"type": "library",
"require": {
"php": ">=8.1"
},
"license": "MIT",
"autoload": {
"psr-4": {
"Waybill\\": "src/" # 这个是类的namespace
}
},
"authors": [
{
"name": "copylian",
"email": "copylian@aikehou.com"
}
],
"minimum-stability": "dev"
}
# 9. 是否生成composer.json
Do you confirm generation [yes]?
# 现在安装依赖项吗
Would you like to install dependencies now [yes]?
执行完成之后生成对应的目录与文件:
将git仓库提交到版本库,正常只需要提交src目录、composer.json文件即可,提交完成给git仓库打一个tag,后续composer更新的时候会从最新的tag拉去代码
三、上传到composer官网:这里必须保证git仓库是开源的,私有的会有权限问题
访问composer镜像官网:https://packagist.org/
登录账号之后在submit页面:https://packagist.org/packages/submit,提交仓库完成之后就可以直接使用了
四、使用:直接通过 composer require copylian/xxx,就可以直接使用仓库了
src目录下定义类:
项目文件加载类:
参考:
文明上网理性发言!