Composer之搭建自己的包工具
作为一个标准的PHPer,必须学会优雅的使用composer,最近,萌生了一个想法,我们每搭建一个项目,里面都会有许多的公用的方法和类库,每次使用的时候就是将其拷贝过来,或者重新写一遍,过于繁琐,效率低下.基于这种情况,打算搭建自己的常用的类库,方法的工具包,这样以后使用的时候,直接在composer.json中引入自己的工具类即可愉快的使用了!!!
前提条件:
开始实践:
一. 创建自己的项目
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之搭建自己的包工具的更多相关文章
- Fiddler 抓包工具总结
阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Statistics 请求的性能数据分析 3). Inspectors 查看数据内容 4). AutoResponder 允许拦截制 ...
- centos7 玩aapt 安卓应用apk解包工具的安装
最近在做一个应用市场的项目,需要在centos7下面对apk解包读取其信息,这就想到了使用Google的解包工具aapt,但是由于中国的原因,国内访问原生工具的地址就有些麻烦,这里就贴出地址:http ...
- HTTP调试 抓包 工具 Fiddle 简介 示例
简介 1.常用抓包工具对比: Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大.模拟http请求的功能也不够,且firebug常常是需要"无刷新修改",如果 ...
- 抓包工具 - Fiddler(详细介绍)
Fiddler的详细介绍 一.Fiddler与其他抓包工具的区别 1.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大.模拟http请求的功能也不够,且firebug常常是需要 ...
- Python+Requests接口测试教程(1):Fiddler抓包工具
本书涵盖内容:fiddler.http协议.json.requests+unittest+报告.bs4.数据相关(mysql/oracle/logging)等内容.刚买须知:本书是针对零基础入门接口测 ...
- Fiddler抓包工具使用详解
一.Fiddler简介 Fiddler是最强大最好用的Web调试工具之一, 它能记录所有客户端和服务器的http和https请求.允许你监视.设置断点.甚至修改输入输出数据.Fiddler包含了一个强 ...
- Fiddler 抓包工具入门
转自:https://www.cnblogs.com/yyhh/p/5140852.html 序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操 ...
- fiddler -- 一个强大的抓包工具
一.fiddler常用功能: 1. Fiddler 是位于客户端和服务器端的http代理,也是目前最常用的http抓包工具之一.它能够记录客户端和服务器之间的所有http请求,可以针对特定的http请 ...
- fiddler抓包工具总结
Fiddler 抓包工具总结 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操作.也可以用来检测网络安全.反正好处多多,举之不尽呀!当年学习的时候也 ...
随机推荐
- LeetCode算法题-Add Digits(Java实现-3种解法)
这是悦乐书的第199次更新,第207篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第63题(顺位题号是258).给定非负整数num,重复添加其所有数字,直到结果只有一位数 ...
- webpack常见的配置项
使用vue init webpack test(项目文件夹名)命令初始化一个vue项目,cd test,然后安装依赖npm install之后会生成一些默认的文件夹和文件,这些文件和文件夹中有些和配置 ...
- (转)Spring Boot(十一):Spring Boot 中 MongoDB 的使用
http://www.ityouknow.com/springboot/2017/05/08/spring-boot-mongodb.html MongoDB 是最早热门非关系数据库的之一,使用也比较 ...
- c# base64编码解码
1.base64转pdf
- bs4 解析 以及用法
bs4解析 bs4: 环境安装: lxml bs4 bs4编码流程: 1.实例化一个bs4对象,且将页面源码数据加载到该对象中 2.bs相关的方法或者属性实现标签定位 3.取文本或者取属性 bs的属性 ...
- Unix/Linux环境C编程新手教程(21) 各个系统HelloWorld跑起来效果怎样?
版权声明:本文为博主尹成联系QQ77025077,微信18510341407原创文章,欢迎转载侵权不究. https://blog.csdn.net/yincheng01/article/detail ...
- CAS跳转流程
场景一: 用户先访问广告合同管理系统ADM,去投放广告,之后又去资产系统AMS,查看资产信息. 访问ADM时,用户需要先去CAS登录,之后访问AMS时 1.访问广告合同管理系统ADM: 2.访问AMS ...
- vue.js 官网及组件网站记录
官网 https://cn.vuejs.org/v2/guide/ 饿了么组件: http://element-cn.eleme.io/#/zh-CN/component/tree 异步请求框架插件 ...
- 了解一下Redis队列【缓兵之计-延时队列】
https://www.cnblogs.com/wt645631686/p/8454021.html 我们平时习惯于使用 Rabbitmq 和 Kafka 作为消息队列中间件,来给应用程序之间增加 异 ...
- java和maven环境变量设置,Tomcat部署
Java环境变量设置 Win10我的电脑右击属性,高级系统设置,高级,环境变量设置 新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program F ...