从零创建发布属于自己的composer包

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000 次 1年
简介: 一、准备工作注册并登录github账户,github.com安装好git软件:注册登录packagist账户:packagist.org/

一、准备工作


  1. 注册并登录github账户,github.com
  2. 安装好git软件:
  3. 注册登录packagist账户:packagist.org/


二、创建线上仓库


1.打开github,点击右上角加号,选择new repository


网络异常,图片无法展示
|


2.而后,进行相关设置,如下图:


网络异常,图片无法展示
|


这里需要输入项目名称,描述,是否公开,是否初始化readme,git忽略文件,以及开源协议等信息。

3.拉取线上仓库到本地

完成上面的操作化,会成功后会跳转到仓库页面。


网络异常,图片无法展示
|


  • 然后点击右侧的code按钮,然后再点击复制此仓库的git地址。
  • 回到本地,打开git软件,运行clone命令拉取
git clone https://github.com/china-li-shuo/oss-sdk.git
复制代码


三、composer 初始化


  1. 先进入项目目录,在git中命令
cd oss-sdk/
复制代码


  1. 然后运行初始化命令
composer init
复制代码


网络异常,图片无法展示
|


详细设置见上图。

注意:package type :library是仓库,对应提交后的require命令,project是项目,下载后直接能跑起来的,对应create-project命令。


3. 配置autoload

初始化完毕后,打开本地的composer.json文件夹可以进行修改。 附上我的composer.json文件,上面有详细注释

{
    "name": "china-li-shuo/oss-sdk", #包名称
    "description": "Alibaba cloud, Tencent cloud, qiniu cloud, object storage",#包描述信息
    "type": "library",#类型,可选e.g. library, project, metapackage, composer-plugin
    "license": "MIT",#开源协议
    "authors": [
        {
            "name": "china-li-shuo",#作者
            "email": "676050059@qq.com"#邮箱
        }
    ],
    "require": { # 需要安装的扩展
        "php": ">=7.1.0",
        "qcloud/cos-sdk-v5": ">=2.0",
        "aliyuncs/oss-sdk-php": "^2.4.0",
        "phpunit/phpunit": "^5.0|^6.0",
        "qiniu/php-sdk": "^7.3"
    },
    "autoload": { # 自动加载: 注意了, 这里有 psr-4, psr-2 多种规范, 并且,注意目录和命名空间
        "psr-4": {
            "lishuo\": "src"
        }
    }
}
复制代码


更改完毕后进行保存,而后运行命令重新载入。


composer dump-autoload
复制代码


网络异常,图片无法展示
|


四、创建基本包代码


这里对应上面的autoload->psr-4里面的配置,还有flies配置 先创建一个src目录

网络异常,图片无法展示
|


五、提交到github仓库


1. 切换到本地目录
cd oss-sdk
复制代码


2.然后运行命令git add .命令,把文件提交到本地仓库
git add .
复制代码


3.然后git commit -m 添加提交注释
git commit -m '第一个composer包'
复制代码


4.然后git push进行提交,把文件提交到github
git push
复制代码


网络异常,图片无法展示
|


报错:

$ git push origin master fatal: unable to access 'github.com/china-li-sh…': OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054

参考资料:blog.csdn.net/weixin_4101…

blog.csdn.net/u013894429/…


六、提交到packagist



  1. 打开github项目地址,复制网址:如github.com/china-li-sh…

网络异常,图片无法展示
|


  1. 然后把github项目地址粘贴到框中

网络异常,图片无法展示
|


点击提交,如果有重名的会提示,不用管直接点submit

网络异常,图片无法展示
|


看到下图,就成功了。

可以复制命令试一下是否能成功。


网络异常,图片无法展示
|


执行composer require china-li-shuo/oss-sdk不成功,说明你的包没有版本号, 你的包要进行发布版本信息,也就是说你的github仓库要新增tag标签就行了。

发布版本参考链接:juejin.cn/post/693822…


网络异常,图片无法展示
|


七、composer更换镜像源


更换镜像:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
复制代码


查看composer配置

composer config -l -g
复制代码


初始化配置(无需运行)

composer config -g --unset repos.packagist


相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
相关文章
|
消息中间件 人工智能 移动开发
阿里云Rocket MQ PHP Http SDK发送消息示例Demo
消息队列 RocketMQ 版支持 RESTful 风格的 HTTP 协议通信,并提供了以下 7 种语言的 SDK,下面以最新的PHP Http SDK为范例介绍RocketMQ消息的发送。
3194 0
阿里云Rocket MQ PHP Http SDK发送消息示例Demo
|
1月前
|
Unix Shell Windows
Windows PowerShell技巧:使用findstr实现类似grep的功能
显示带有线路编号**: `/N`选项将显示每条结果前面带有其在线路上出现位置编号。
333 7
|
Java 数据库连接 Spring
深入了解数据校验(Bean Validation):从深处去掌握@Valid的作用(级联校验)以及常用约束注解的解释说明【享学Java】(下)
深入了解数据校验(Bean Validation):从深处去掌握@Valid的作用(级联校验)以及常用约束注解的解释说明【享学Java】(下)
深入了解数据校验(Bean Validation):从深处去掌握@Valid的作用(级联校验)以及常用约束注解的解释说明【享学Java】(下)
|
5月前
|
人工智能 JavaScript 数据可视化
AI + 低代码技术揭秘(八):UI 组件库
vtj/ui 是基于 Vue 3 的组件库,为 VTJ 低代码平台提供丰富的 UI 基础组件,涵盖表单、数据网格、对话框等,支持模块化开发与 TypeScript,助力高效构建可视化应用界面。
379 57
|
7月前
|
Ubuntu 开发工具 C语言
Ubuntu环境下的Samba源码编译
以上就是在Ubuntu环境下编译Samba源码的步骤。希望这个指南能帮助你成功地从源码编译Samba。如果你在编译过程中遇到任何问题,你可以查阅Samba的官方文档,或者在网上搜索相关的教程和解决方案。
249 23
|
XML JSON 安全
Web服务是通过标准化的通信协议和数据格式
【10月更文挑战第18天】Web服务是通过标准化的通信协议和数据格式
346 69
|
JavaScript 持续交付 开发者
package.json 和 package-lock.json
`package.json`和`package-lock.json`文件共同协作,为Node.js项目提供了可靠的依赖管理机制,确保项目在不同环境下能够稳定运行和顺利构建。在项目开发和维护过程中,正确理解和合理使用这两个文件对于管理项目依赖、保证项目的稳定性和可维护性至关重要。
417 1
|
前端开发 PHP
ThinkPHP6布局的方式之模板布局,全局配置方式,模板标签方式,动态方法布局
本文介绍了ThinkPHP6中实现模板布局的三种方式:全局配置方式、模板标签方式和动态方法布局,并通过示例代码展示了如何在项目中应用这些布局方式。
ThinkPHP6布局的方式之模板布局,全局配置方式,模板标签方式,动态方法布局
|
移动开发 JSON 小程序
明文scheme拉起此小程序
明文scheme拉起此小程序
997 4
|
缓存 自然语言处理 JavaScript
Thinkphp6安装
Thinkphp6安装
239 0

热门文章

最新文章