一、前言

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

准备工作:

二、实践

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

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 中的代码更新,需要在对应包中手动更新,所以建议设置自动更新。步骤如下:

进入 yanlongma/push 仓库,选择 "Settings -> Integrations & services";

点击 "Add service",选择 “Packagist”;

填写你的 Packagist 账号对应的信息(登录后点击查看https://packagist.org/profile/ )

配置完成后,点击右上角的“Test service”,如果出现 “Okay, the test payload is on its way.”,则说明配置成功。

6. 使用共享包

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

$ composer require yanlongma/push

注:

发布包到 Packagist 后,可能过几分钟才能在客户端 search 到;

没有打 tag 的要指定 dev,完整命令composer require "yanlongma/push @dev"

php composer源码打包,手把手教你发布自己的 Composer 包相关推荐

  1. 1号店案例html源码_手把手教一起写jQuery版mini源码,分析jQuery的优势

    适合人群 本文适合0.5~3年的前端开发人员,以及想了解jQuery是什么的小伙伴们. 前言 谈谈个人对jQuery的看法. 如果你是一个五年以上的开发人员,相信你一定认识了解jQuery.这好比你十 ...

  2. 大佬带你看源码!手把手教你5G时代Webview的正确使用姿势,建议收藏

    背景 惯例,先简单陈述一下自己的,91年生人,164年三本毕业后在深圳工作,末流小公司,工资13k,无房,无车,无户口. 那时候感觉生活也还行,父母有退休金,我基本上不用太操心,女朋友在一起很久了,很 ...

  3. python爬取音乐源码_手把手教你使用Python抓取QQ音乐数据(第一弹)

    [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二.需要的库] 主要涉及的库有:requests.json ...

  4. 引入yml依赖包_手把手教你发布 Python 项目开源包

    编译:机器之心,作者:Gabriel Lerner.Nathan Toubiana 好不容易码了个 python 项目,是不是很兴奋?那么怎么把这个项目发出去让大家看到呢?本文作者写了一份在 GitH ...

  5. 萝卜源码前后端源码+打包APP的教程

    简介: 今天分享一个萝卜源码前后端源码+打包APP的教程 我相信很多人都有源码但是不会配置复杂的AS工具导致一直没有打包好属于自己的APP 所以,今天我来了 萝卜前端APPJava源码  先把源码发出 ...

  6. 2016年最经典的高仿系列源码打包下载4.84G

    │  JAVAapk.com文件列表生成.bat │  例子大全说明.txt │  本例子永久更新地址~.url │  目录列表2015.11.04更新.txt                    ...

  7. O2OA二次开发(一)前后端源码打包部署命令

    O2OA二次开发(一)前后端源码打包部署命令 o2oa源代码全部build一次要花费很长时间,有时候我们只是修改了前端代码或者只是修改了后端代码,没必要进行全部重新编译打包. 全部打包命令 执行以下命 ...

  8. 30款APP源码打包 Java Android安卓App源码 30款打包下载

    [30款APP源码打包 Java Android安卓App源码 30款打包下载](访问密码: 168168)(https://474b.com/file/29013429-461457489)

  9. 手把手教你发布自己的CocoaPods开源库

    本文讲的是手把手教你发布自己的CocoaPods开源库,发布自己的cocoapods开源库按照以下步骤,良心制作,包教包会!! 下面我会通过一个名为IFMMenu的项目来讲解一下整个过程. 1.写好代 ...

最新文章

  1. Python字符串方法:字符串拼接、截取、转数字
  2. ElasticSearch教程——自定义分词器(转学习使用)
  3. F - Sugoroku2(期望dp)
  4. java 如何使用dylib,如何在应用程序中使用dylib文件?
  5. 【C++】 Boost 库编译技巧总结
  6. BeagleBone Black 连接USB摄像头,并实现采集、存储及传输
  7. 基于病害区域图像的植物病害识别深度学习(创新点好理解)
  8. 如何读取书生sep文档内容
  9. MATLAB基础绘图操作
  10. 酷狗音乐html5版,HTML5酷狗可实现全平台安全畅听
  11. C语言实现移位密码算法,仿射密码算法
  12. java学士后课程_java学士后课程
  13. window7系统为什么老是弹出交互式服务检测
  14. 小程序图片转Base64,方法总结。
  15. 善用云函数,开源节流,小程序后端使用云函数案例
  16. 台式计算机功率一般多少瓦,笔记本功率一般是多少瓦的,实际功率又是多少?...
  17. 数据库入门级学习(4)
  18. 学习Vue3 第二十六章(深入v-model)
  19. 深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
  20. 心理学|颜色是如何影响我们的情绪的?

热门文章

  1. bzoj4514 [Sdoi2016]数字配对 费用流
  2. 高维网络(dp+容斥?)
  3. unity添加对象实例_在Unity中,如何通过值复制一个GameObject,以便在实例化之前修改它?...
  4. python底层源码_大师兄的Python机器学习笔记:统计学基础之底层代码实现(一)...
  5. python如何创建一个类_python 3——自定义一个类、object类
  6. Compact Normal Storage for Small G-Buffers
  7. UE4 Material Properties
  8. 为什么选择使用 OKR 进行项目过程管理
  9. 敏捷 - #1 原则:早期和持续交付有价值的软件 (#1 Agile Principle)
  10. Python中文问题