文档章节

手把手教你发布自己的 Composer 包

天秤vs永恒
 天秤vs永恒
发布于 2018/04/21 16:37
字数 594
阅读 54
收藏 2

一、前言

Composer 是 PHP 用来管理依赖(dependency)关系的工具。我们不仅要学会使用别人提供的包,更要学会制作和分享自己的软件包,下面演示如何创建一个自己的 Composer 包。

准备工作:

  1. 注册 Github 账号
  2. 注册 Packagist 账号

二、实践

本案例演示如何创建一个第三方消息推送(极光推送)的包。

1. 创建 Github 仓库

登录 Github,创建仓库 yanlongma/push,并将代码克隆到本地:

$ git clone https://github.com/yanlongma/push.git

2. 创建 Composer 配置文件

进入项目根目录,创建 Composer 配置文件 composer.json,可以使用命令 compser init 创建也可以手动创建,最终文件内容大体如下:

{
    "name": "yanlongma/push",
    "description": "Third party message push",
    "authors": [
        {
            "name": "Yanlong Ma"
        }
    ],
    "license": "MIT",
    "require": {
        "php": ">=5.4"
    },
    "autoload": {
        "psr-4": {
            "YanlongMa\\Push\\": "src/"
        }
    }
}

3. 提交代码到 Github

根据自己需要实现的功能编写代码,本项目最终项目结构如下:

.git/  
.gitignore  
composer.json  
README.md  
src/
    Client.php	
    JPush.php

代码编写完成且测试没问题后提交代码到 Github。

4. 发布包到 Packagist

登录 Packagist,检出 https://github.com/YanlongMa/push.git 仓库的代码,系统会根据仓库中 composer.json 文件自动设置包的相关信息。

5. 设置 Packagist 中的包自动更新

如果不设置自动同步,每次 Github 中的代码更新,需要在对应包中手动更新,所以建议设置自动更新。步骤如下:

  1. 进入 yanlongma/push 仓库,选择 "Settings -> Integrations & services";
  2. 点击 "Add service",选择 “Packagist”;
  3. 填写你的 Packagist 账号对应的信息(登录后点击查看https://packagist.org/profile/
  4. 配置完成后,点击右上角的“Test service”,如果出现 “Okay, the test payload is on its way.”,则说明配置成功。

6. 使用共享包

发布包到 Packagist 后,根据包名就可以搜索和使用该包了,在自己的项目中申明该包依赖:

$ composer require yanlongma/push

该包的具体使用可以查看 https://github.com/yanlongma/push

  • 发布包到 Packagist 后,可能过几分钟才能在客户端 search 到;
  • 没有打 tag 的要指定 dev,完整命令composer require "yanlongma/push @dev"

本文首发于马燕龙个人博客,欢迎分享,转载请标明出处。 马燕龙个人博客:http://www.mayanlong.com 马燕龙个人微博:http://weibo.com/imayanlong 马燕龙Github主页:https://github.com/yanlongma

© 著作权归作者所有

天秤vs永恒
粉丝 4
博文 39
码字总数 18402
作品 0
长宁
项目经理
私信 提问
怎样开发一个满足 psr-4 规范的php 类库

在网上找了很多文章了解 psr-4 ,却很难找到教你怎么去写一个符合 psr-4 规范的类库。也许是他们都比较了解之前的规范,所以基本都在讲其它方面的内容,唯独没有教你怎么写代码。 经过自己的...

阿桂1989
2017/10/27
0
0
手把手教你跑 Larave 框架实战笔记系列之一

         [宗旨]严格遵循现代编程组件化Web开发原理,通过phpRE+Composer + PhpStorm+Laravel快捷安装配置集成强大现代优雅开发平台,实现一站式Web开发。 [前 言]据调查显示,目...

人可工作室
2018/06/26
0
0
如何发布自己开发的npm包

原文地址: 如何发布自己开发的npm包 前一段时间开发了一些基于Vue的插件,感觉还挺好用的,就发布到npm,希望大家都能使用。 下面说一下发布npm 的流程: 注册一个npm账号 进入网址: https:/...

xiaoxiao昱
2017/12/22
0
0
PHP回顾之创建自己的Composer包

前文 PHP回顾之Composer 简要介绍了Composer的相关概念和简要用法,应付日常开发已无大碍。想要更好的利用Composer协同工作,学会创建自己的Composer包是一项必不可少的技能。本文先讲解Com...

PHP开发栈
05/29
0
0
如何开发、本地测试、发布 Laravel 扩展包?

现在已经有了很多,关于如何开发 Laravel 扩展包的文章。但是大多文章写的太过片面,不够完整,而且我在实际进行开发扩展包的时候,还是遇到了很多的问题,我把自己的开发经验,以及遇到的问...

angkee
2018/01/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

lua字符串和时间戳相互转换

1. 时间戳转成格式化字符串 直接利用函数os.date()将时间戳转化成格式化字符串.```local timestamp = 1561636137;local strDate = os.date("%Y/%m/%d %H:%M:%S", timestamp)print("strD......

书香神
43分钟前
1
0
代码规范

代码格式化 安装vscode插件:Prettier - Code formatter 格式化配置:将下列配置写入到vscode的settings.json文件 (遵照代码格式化) "prettier.disableLanguages": ["vue"], "prettier.......

TreeZhou0511
今天
5
0
python实现人工神经网络的一个例子

人工神经网络已经有无数的开源框架,比如tensorflow,caffe等,可以直接用。但最近需要做一个小样例,把基本思想讲一讲,因此自己写了一个demo,以供参考。 下面直接上代码,代码中有注释,比...

propagator
今天
6
0
远程dubugger

1、在tomcat的bin下/data/project/XXX/apache-tomcat-8.5.23/bin 在catalina.bat文件中新增如下即可 JAVA_OPTS="-Xmx1024m -Xms1024m -agentlib:jdwp=transport=dt_socket,server=y,suspend......

一只小青蛙
今天
3
0
jemter 连接MySQL

jemter 连接MySQL 点击测试计划,测试计划最后”添加目录或jar包到ClassPath“,点击浏览,添加mysql-connector.jar mysql-connector.jar的下载地址: https://mvnrepository.com/artifact/my...

xiaobai1315
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部