作为一个标准的PHPer,必须学会优雅的使用composer,最近,萌生了一个想法,我们每搭建一个项目,里面都会有许多的公用的方法和类库,每次使用的时候就是将其拷贝过来,或者重新写一遍,过于繁琐,效率低下.基于这种情况,打算搭建自己的常用的类库,方法的工具包,这样以后使用的时候,直接在composer.json中引入自己的工具类即可愉快的使用了!!!

  前提条件:

    1) 拥有自己的GitHub账号和Packagist账号

  开始实践:

    一. 创建自己的项目

mkdir WebTool

cd WebTool

    二.创建composer.json文件

//使用composer init命令来实现

☁  composer init

  Welcome to the Composer config generator

This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [xwolf/web-tool]:
Description []: try make a package
Author [lanlang <liaotiam@.com>, n to skip]:
Minimum Stability []: dev
Package Type (e.g. library, project, metapackage, composer-plugin) []: library
License []: Apache-2.0 Define your dependencies. Would you like to define your dependencies (require) interactively [yes]? n
Would you like to define your dev dependencies (require-dev) interactively [yes]? n {
"name": "xwolf/web-tool",
"description": "common tool kit",
"type": "library",
"license": "Apache-2.0",
"authors": [
{
"name": "lanlang",
"email": "sliaotiam@126.com"
}
],
"minimum-stability": "stable",
"require": {}
} Do you confirm generation [yes]? yes

  生成composer.json 可以根据自己的需求进行相应的修改(参考:https://docs.phpcomposer.com/04-schema.html#version),我自己的修改如下:

{
"name": "xwolf/web-tool",
"description": "common tool kit",
"type": "library",
"keywords": [
"Tools",
"Library"
],
"homepage": "https://github.com/lanlangdeai/WebTool",
"license": "Apache-2.0",
"authors": [
{
"name": "lanlang",
"email": "liaotiam@126.com",
"role": "Developer"
}
],
"minimum-stability": "stable",
"require": {
"php": ">=5.4.0"
},
"autoload": {
"psr-4": {
"WebTool\\": "src/"
}
}
}

主要是添加了对于自动加载规范使用psr-4(命名空间和目录映射关系)和环境要求

  最终目录结构:

  三. 编写自己的类库并进行代码上传到GitHub

    现在在你的GitHub上创建一个新仓库用来放置我们的项目

git init

git add -A

git commit -am '备注信息'

git remote add origin git@github.com:lanlangdeai/WebTool.git

git push -u origin master

  四. 登录自己的packagist

    上传自己的包:

    

    验证自己的包名称是否已经存在,已经存在会提示:A package with the name xwolf/web-tool already exists.

    如果不存在就可以提交了!成功之后的样子:

   这样我们的包基本上就可以使用了, 在我们的项目中composer.json 添加

  执行命令: composer update 这样就安装好了,在我们的项目中直接使用命令空间的方式引用即可愉快使用了,等等!!!是不是还有一些工作需要做... 是的,为了简化我们的流程,我们应该支持我们提交开发代码到GitHub上的时候,会自动的提交到packagist上同步数据

  五. 实现packagist自动更新扩展包

        1) 首先需要在packagist上拿到api令牌

    

   2)在GitHub上配置该令牌

    在该项目下 > settings > webhooks > add webhook

    填写你的令牌到secret中,具体的填写可以参考:https://packagist.org/about#how-to-update-packages

    OK一切搞定,可以愉快的玩耍了!~~~

   注意点:

    1. 默认一开始提交上去的是dev-master版本,所以要想实现像1.0.0 这种版本需要对于提交代码时候打上tag即可,packagist会自动抓取tag作为发布的版本

      

git tag -a v1.0.0 -m '备注内容'  //打上版本标签

git tag //查看标签

git show v1.0.0 查看该版本的响应的信息

默认情况下git push 不会讲标签传送到远程服务器上,需要进行显示命令

git push origin v1.0.0 

git commit * -m '备注信息'

Composer之搭建自己的包工具的更多相关文章

  1. Fiddler 抓包工具总结

    阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Statistics 请求的性能数据分析 3). Inspectors 查看数据内容 4). AutoResponder 允许拦截制 ...

  2. centos7 玩aapt 安卓应用apk解包工具的安装

    最近在做一个应用市场的项目,需要在centos7下面对apk解包读取其信息,这就想到了使用Google的解包工具aapt,但是由于中国的原因,国内访问原生工具的地址就有些麻烦,这里就贴出地址:http ...

  3. HTTP调试 抓包 工具 Fiddle 简介 示例

    简介 1.常用抓包工具对比: Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大.模拟http请求的功能也不够,且firebug常常是需要"无刷新修改",如果 ...

  4. 抓包工具 - Fiddler(详细介绍)

    Fiddler的详细介绍 一.Fiddler与其他抓包工具的区别 1.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大.模拟http请求的功能也不够,且firebug常常是需要 ...

  5. Python+Requests接口测试教程(1):Fiddler抓包工具

    本书涵盖内容:fiddler.http协议.json.requests+unittest+报告.bs4.数据相关(mysql/oracle/logging)等内容.刚买须知:本书是针对零基础入门接口测 ...

  6. Fiddler抓包工具使用详解

    一.Fiddler简介 Fiddler是最强大最好用的Web调试工具之一, 它能记录所有客户端和服务器的http和https请求.允许你监视.设置断点.甚至修改输入输出数据.Fiddler包含了一个强 ...

  7. Fiddler 抓包工具入门

    转自:https://www.cnblogs.com/yyhh/p/5140852.html 序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操 ...

  8. fiddler -- 一个强大的抓包工具

    一.fiddler常用功能: 1. Fiddler 是位于客户端和服务器端的http代理,也是目前最常用的http抓包工具之一.它能够记录客户端和服务器之间的所有http请求,可以针对特定的http请 ...

  9. fiddler抓包工具总结

    Fiddler 抓包工具总结 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操作.也可以用来检测网络安全.反正好处多多,举之不尽呀!当年学习的时候也 ...

随机推荐

  1. Java序列化(含transient)

    什么是序列化? 我们创建的对象只有在Java虚拟机保持运行时,才会存在于内存中.如果想要超出Java虚拟机的生命周期,就可以将对象序列化,将对象状态转换为字节序列,写入文件(或socket传输),后面 ...

  2. Git版本管理工具常用命令说明

    Git常用命令 $ touch README.md 创建一个README.md文件 $ git init  创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文 ...

  3. grep正则表达式搜索

    grep -n -e "INT32 *AdaptorPrmOp" --include "*.c"  -r ./ 搜索函数的定义 中间有n个空格

  4. pip自动生成和安装requirements.txt

    生成requirements.txt文件 pip freeze > requirements.txt 安装requirements.txt依赖 pip install -r requiremen ...

  5. Linux之权限详解

    如何知道你有什么权限 我能干什么?这是我最关心的问题! 切换到普通用户 [root@luffy-01 ~]# su - pizza [pizza@luffy-01 ~]$ ls /root ls: c ...

  6. C. Nice Garland

    题意: 就是有一串灯分别颜色是R,G,B.要求将每种颜色的灯相隔2个不同的灯.比如,RGR变成RGB才叫好看. 分析: RGB有6种排列,分别是:"RGB", "RBG& ...

  7. Oracle 迁移 序列

    ---删除序列select 'drop sequence ' || sequence_owner || '.' || SEQUENCE_NAME || ';'from dba_sequenceswhe ...

  8. JAVA Exception

    博客背景音乐设置 晴天博客(酷)

  9. B+Tree原理及mysql的索引分析

    一.索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构.提取句子主干,就可以得到索引的本质:索引是数据结构. 我们知道,数据库查询是数据库的最主要功能之 ...

  10. SkylineGlobe for web开发是否支持IE11?

    之前有客户反馈,说在IE11里浏览skyline开发的系统页面,会提示错误,怀疑是不是skyline不支持IE11了,其实不是. 主要是因为IE11更加遵循W3C规范,所以IE11与低版本IE在加载a ...