【Composer】实战操作二:自己创建composer包并提交
大纲
创建自己的composer库
提交到指定平台
测试安装自己的库
设置composer平台自动更新
如何方便测试自己开发的库
开始动手
创建自己的composer库
个人博客后台有一部分是关于统计的,通过UA获取浏览器,设备,操作系统。本人封装了一个库,放在github上,源码地址:https://github.com/apanly/browser-detector,任何一个文件夹只有有个composer.json文件,就可以作为一个库或者项目的,大家可以自行在github新建自己的项目


browser-detector 的 composer.json内容如下
{
"name": "apanly/browser-detector",
"description": "根据UA判断浏览器类型和版本,操作系统,设备型号 ",
"keywords": ["browser", "os", "operating system", "language", "detection","浏览器","操作系统","设备型号"],
"authors": [
{
"name": "apanly",
"email": "apanly@163.com"
}
],
"require": {
"php": "^5.3.3 || ^7.0"
},
"autoload": {
"psr-4": {
"apanly\\BrowserDetector\\": "src"
}
}
}
其中最重要的两个关键字就是 name 和 autoload ,具体功能实现可以阅读源码
| 关键字 | 描述 |
| name | 包名,包括供应商名称和项目名称,使用 / 分隔,例如apanly/browser-detector |
| autoload | PHP autoloader 的自动加载映射 |
提交到指定平台
当开发完一个包之后,如果想提供给互联网人下载需要提交到 https://packagist.org 平台
提交地址:https://packagist.org/packages/submit (注册请自行解决)
apanly/browser-detector地址:https://packagist.org/packages/apanly/browser-detector


测试安装自己的库
安装命令如下成功就可以直接使用,方便吧
composer require apanly/browser-detector
设置composer平台自动更新
直接上图说明,设置完成之后每次更新代码packagist平台也会同步的




如何方便测试自己开发的库
本人目前还没有找到方便的方法,测试的时候我会在固定地方 安装这个插件,然后进入库目录,你会发现本身就是一个git项目,所以我的步骤就是
进入库目录
直接修改源码
测试
push到github
重复2-4步保存迭代更新
$ cd vendor/apanly/browser-detector on master
$ git remote -v
composer https://github.com/apanly/browser-detector.git (fetch)
composer https://github.com/apanly/browser-detector.git (push)
origin https://github.com/apanly/browser-detector.git (fetch)
origin git@github.com:apanly/browser-detector.git (push)
原文地址:【Composer】实战操作二:自己创建composer包并提交
标签:composer pachage browser-detector github git
智能推荐
- apparmor 引起自定义mysql 日志问题
- 【Git 使用笔记】第一部分:安装git 和 使用git
- php 通过exec 创建git分支失败
- Composer : php依赖管理工具
- 【Composer】实战操作一:使用库
【Composer】实战操作二:自己创建composer包并提交的更多相关文章
- composer 创建自己包
服务器环境下创建自己的项目文件 初始化composer 打开cmd 窗口,cd 到 backrestore 执行 composer init 命令 D:\phpStudy\WWW\backrestor ...
- Java创建和解析Json数据方法(二)——org.json包的使用
(二)org.json包的使用 1.简介 工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookie ...
- composer分析(二)结合PSR-4
composer分析(二)结合PSR-4 PSR-4提供了一种文件和路径映射关系,非常类似文件系统的组织结构 全限定类名 \<NamespaceName>(\<SubNamespac ...
- Android Studio 创建aar包与引用
两者区别:*.jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件.*.aar: 包含所有资源 ,class以及res资源文件全部包含 一.创建aar包1.创建一个 ...
- IntelliJ IDEA 创建 Java包
一.创建包 1.在已有项目的"src"文件夹 -> 右键 -> New -> Package 2.命名包名,注意命名规范 二.创建类 1.新建包成功之后,在包上右 ...
- 自学Linux Shell9.4-基于Red Hat系统工具包存在两种方式之二:源码包
点击返回 自学Linux命令行与Shell脚本之路 9.4-基于Red Hat系统工具包存在两种方式之二:源码包 本节主要介绍基于Red Had的系统(测试系统centos) 1. 工具包存在两种方式 ...
- BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块
NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...
- InterSystems Ensemble学习笔记(二) Ensemble创建镜像, 实现自动故障转移
系列目录 InterSystems Ensemble学习笔记(一) Ensemble介绍及安装InterSystems Ensemble学习笔记(二) Ensemble创建镜像, 实现自动故障转移 一 ...
- 从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板
标题:从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11155 ...
随机推荐
- BZOJ3551 : [ONTAK2010]Peaks加强版
首先强制在线的话,肯定是不能再离线排序+平衡树启发式合并了. 这回要用的是线段树合并,每次把两棵线段树合并,总复杂度为$O(n\log n)$ 预处理: 把边按权值从小到大排序,依次加边, 对于边(x ...
- hadoop datanode 挂机恢复后,多复制的块删除的问题
发现: 如果到namenode,用start-all.sh启动datanode,则会删除该datanode上所有的数据 到datanode上用hadoop-daemon.sh start datano ...
- (转)hbase master挂掉-zookeeper连接超时原因
link:http://www.51testing.com/?uid-445759-action-viewspace-itemid-812467 并行运行hbase删表,建表操作,多个表多个regio ...
- Java 文件和byte数组转换
/** * 获得指定文件的byte数组 */ private byte[] getBytes(String filePath){ byte[] buffer = null; try { File fi ...
- css learn
float: 1.margin属性本身与float无关.写不写float都可以margin. 2.top,right,bottom,left和z-index都无法使用. 3.父元素浮动,子元素在其中仍 ...
- [慢查优化]慎用MySQL子查询,尤其是看到DEPENDENT SUBQUERY标记时
案例梳理时间:2013-9-25 写在前面的话: 在慢查优化1和2里都反复强调过 explain 的重要性,但有时候肉眼看不出 explain 结果如何指导优化,这时候还需要有一些其他基础知识的佐助, ...
- ZeroMQ实例-使用ZeroMQ进行windows与linux之间的通信
1.本文包括 1)在windows下使用ZMQ 2)在windows环境下与Linux环境下进行网络通信 2.在Linux下使用ZMQ 之前写过一篇如何在Linux环境下使用ZMQ的文章 <Ze ...
- GO语言练习:for基本用法
1.代码 2.运行 1.代码 package main import "fmt" func main(){ ; k < ; k++{ JLoop: ; j < ; j+ ...
- 使用C#实现FTP的文件上传和下载【转】
参考博文:http://blog.163.com/mity_rui@126/blog/static/1098136182013101525615577/
- 使用ADO.NET访问数据库
第一种连接数据库的方法:可以使用.ET Framework提供程序的sqlConnection对象,使用无参数的构造函数创建Connection对象,代码如下: string strcon = &qu ...