php composer源码打包,手把手教你发布自己的 Composer 包
一、前言
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号店案例html源码_手把手教一起写jQuery版mini源码,分析jQuery的优势
适合人群 本文适合0.5~3年的前端开发人员,以及想了解jQuery是什么的小伙伴们. 前言 谈谈个人对jQuery的看法. 如果你是一个五年以上的开发人员,相信你一定认识了解jQuery.这好比你十 ...
- 大佬带你看源码!手把手教你5G时代Webview的正确使用姿势,建议收藏
背景 惯例,先简单陈述一下自己的,91年生人,164年三本毕业后在深圳工作,末流小公司,工资13k,无房,无车,无户口. 那时候感觉生活也还行,父母有退休金,我基本上不用太操心,女朋友在一起很久了,很 ...
- python爬取音乐源码_手把手教你使用Python抓取QQ音乐数据(第一弹)
[一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二.需要的库] 主要涉及的库有:requests.json ...
- 引入yml依赖包_手把手教你发布 Python 项目开源包
编译:机器之心,作者:Gabriel Lerner.Nathan Toubiana 好不容易码了个 python 项目,是不是很兴奋?那么怎么把这个项目发出去让大家看到呢?本文作者写了一份在 GitH ...
- 萝卜源码前后端源码+打包APP的教程
简介: 今天分享一个萝卜源码前后端源码+打包APP的教程 我相信很多人都有源码但是不会配置复杂的AS工具导致一直没有打包好属于自己的APP 所以,今天我来了 萝卜前端APPJava源码 先把源码发出 ...
- 2016年最经典的高仿系列源码打包下载4.84G
│ JAVAapk.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2015.11.04更新.txt ...
- O2OA二次开发(一)前后端源码打包部署命令
O2OA二次开发(一)前后端源码打包部署命令 o2oa源代码全部build一次要花费很长时间,有时候我们只是修改了前端代码或者只是修改了后端代码,没必要进行全部重新编译打包. 全部打包命令 执行以下命 ...
- 30款APP源码打包 Java Android安卓App源码 30款打包下载
[30款APP源码打包 Java Android安卓App源码 30款打包下载](访问密码: 168168)(https://474b.com/file/29013429-461457489)
- 手把手教你发布自己的CocoaPods开源库
本文讲的是手把手教你发布自己的CocoaPods开源库,发布自己的cocoapods开源库按照以下步骤,良心制作,包教包会!! 下面我会通过一个名为IFMMenu的项目来讲解一下整个过程. 1.写好代 ...
最新文章
- Python字符串方法:字符串拼接、截取、转数字
- ElasticSearch教程——自定义分词器(转学习使用)
- F - Sugoroku2(期望dp)
- java 如何使用dylib,如何在应用程序中使用dylib文件?
- 【C++】 Boost 库编译技巧总结
- BeagleBone Black 连接USB摄像头,并实现采集、存储及传输
- 基于病害区域图像的植物病害识别深度学习(创新点好理解)
- 如何读取书生sep文档内容
- MATLAB基础绘图操作
- 酷狗音乐html5版,HTML5酷狗可实现全平台安全畅听
- C语言实现移位密码算法,仿射密码算法
- java学士后课程_java学士后课程
- window7系统为什么老是弹出交互式服务检测
- 小程序图片转Base64,方法总结。
- 善用云函数,开源节流,小程序后端使用云函数案例
- 台式计算机功率一般多少瓦,笔记本功率一般是多少瓦的,实际功率又是多少?...
- 数据库入门级学习(4)
- 学习Vue3 第二十六章(深入v-model)
- 深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
- 心理学|颜色是如何影响我们的情绪的?
热门文章
- bzoj4514 [Sdoi2016]数字配对 费用流
- 高维网络(dp+容斥?)
- unity添加对象实例_在Unity中,如何通过值复制一个GameObject,以便在实例化之前修改它?...
- python底层源码_大师兄的Python机器学习笔记:统计学基础之底层代码实现(一)...
- python如何创建一个类_python 3——自定义一个类、object类
- Compact Normal Storage for Small G-Buffers
- UE4 Material Properties
- 为什么选择使用 OKR 进行项目过程管理
- 敏捷 - #1 原则:早期和持续交付有价值的软件 (#1 Agile Principle)
- Python中文问题