【Composer】如何创建并发布一个自己的包

安全开
• 阅读 2293

上一篇【Composer】简单介绍

现在来说一说如何创建并发布一个自己的包,以这个简单的服务化类库 twinkle/twinkle-api 为例,也作个简单说明。

有哪些步骤

  1. 编写代码
  2. 编写composer.json文件,选择合适的包加载方式
  3. github拖管代码
  4. 提交包到packagist
  5. 配置github hook自动更新

编写类库代码

作为一个使用composer的现代php程序员,建议使用 psr4标准 来组织代码(这不是必须,但是建议),代码参见github

编写composer.json文件

composer 一个重要功能就是自动加载,所以我们需要作相应的配置来注册一个 psr4 autoloader 到我们自己的命名空间。上面说了,我们使用 psr4 标准,这样配置

{
  "name": "twinkle/twinkle-api",
  "description": "Just for fun",
  "require": {
  },
  "autoload": {
    "psr-4": {
      "twinkle\\client\\": "client/",  // 就是这两行了
      "twinkle\\service\\": "service/"
    }
  }
}

github拖管代码

在github上创建一个项目,提交代码。同时建议发布一个稳定的tag。
这不是必须,可以选择其他代码仓库,git或者svn都可以,但是建议放在这。

提交包到 packagist

packagist 是 Composer 的主要资源库,原生支持。任何支持 Composer 的开源项目应该发布自己的包在 packagist 上。当然这也不是必须,但是建议,毕竟 packagist 使用的人最多,资源最丰富。
登录packagist.org 官方站点,如果没有账号,直接选择 github 账号登录就好了

【Composer】如何创建并发布一个自己的包

输入项目的 github 地址,点击check,判断项目代码中包含 composer.json 文件,包名不重复,就可以直接
submit 了。

配置github hook自动更新

配置自动更新的好处是,如果提交了代码,或者发布了新的版本,packagist 会自动拉取最新的代码供他人使用。

To do so you can:

1.Go to your GitHub repository
2.Click the "Settings" button
3.Click "Integrations & services"
4.Add a "Packagist" service, and configure it with your API token, plus your Packagist username
5.Check the "Active" box and submit the form

这里有详细说明

【Composer】如何创建并发布一个自己的包

token 在 packagist 个人中心点 “Show API Token”按钮可以查看到。

这样我们就创建并发布好了一个自己的包,试试在项目中使用它吧。

composer require twinkle/twinkle-api
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
java中比较两个时间的差值
项目背景1.某篇文稿的发布时间是publishDate,例如:2020072118:00:41。2.现要求判断该篇文稿的发布时间是否在近30天之内。publicstaticlongdayDiff(DatecurrentDate,DatepublishDate){LongcurrentTimecurrentDat
Stella981 Stella981
3年前
KaliTools说明书+BurpSuit实战指南+SQL注入知识库+国外渗透报告
!(https://oscimg.oschina.net/oscnet/d1c876a571bb41a7942dd9752f68632e.gif"15254461546.gif")0X00KaliLinux Tools中文说明书!(https://oscimg.oschina.net/oscnet/
Stella981 Stella981
3年前
Linux安装Composer
Composer是php的一个包管理器,使用Composer能极大的提高我们的代码效率。当我们需要使用优雅的laraverl框架时我们一定不能绕过Composer当然Composer不是只为laravel服务的,他是为整个php服务的。(Composer需要php5.3.2以上才能运行)1.下载Composer包curl
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
JavaWeb 调用接口
JavaWeb 如何调用接口CreateTime2018年4月2日19:04:29Author:Marydon1.所需jar包!(https://oscimg.oschina.net/oscnet/0f139
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
安全开
安全开
Lv1
停船暂借问,或恐是同乡。
文章
4
粉丝
0
获赞
0