php composer 开发自己的包
以往都是在项目直接写自己的包文件,并没有把他放在packagist上面,以composer来管理使用。
今天没事来整一下,供大家一起学习
一,在github和packagist分别注册自己的账号,这里就省略了
二,创建github项目:trois
2.1 new repository
2.2 拿到git地址
三,本地获取github项目:trois
这是我本地随便创建一个文件夹 D:\phpStudy\WWW\wandehua\compoer-dev
3.1 在composer-dev文件内右键, 选择Git Bash Here
3.2 在git窗口里输入:git clone https://github.com/wandehua/trois.git (2.2中拿到的地址)
3.3 这样我们就得到了我们在github的项目:trois
四,composer 创建我们的包文件
进入我们刚刚得到的github项目文件夹,
地址栏上输入cmd就可以快速进入cmd窗口了,
4.1 并初始化componser包
最后得到了composer.json文件(这是我们最想要的)和.getignore文件
4.2 编辑composer.json文件
{
"name": "wandehua/trois",
"description": "trois && deux 23",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "wandehua",
"email": "271920545@qq.com"
}
],
"minimum-stability": "dev",
"require": {
"php":">=5.6" //对php环境的要求, 这里说明一下,真实是不能注释的
},
"autoload":{
"psr-4":{ //psr-4 规范
"Trois\\Library":"src/Trois/Library" //命名空间 与 文件目录映射, 这里说明一下,真实是不能注释的
}
}
}
4.3 新建psr-4中配置的类文件夹,并创建一个Loader.php文件
4.4 测试一下, 最终生成了vendor目录和composer.lock文件,
至此,我们的composer包就算开发完了
五,提交我们的代码到github项目中
提交之前,编辑.gitignore文件,增加忽略文件(vender和composer.lock文件就不会通过git提交到github上了)
5.1 开始提交
依次输入:
git add . (注:别忘记后面的.,此操作是把Test文件夹下面的文件都添加进来)
git commit -m "提交信息" (注:“提交信息”里面换成你需要,如“first commit”)
git push -u origin master (注:此操作目的是把本地仓库push到github上面,此步骤需要你输入帐号和密码)
六,在github上验证,
至此,我们github相关就全部操作完成
如何使用composer使用的我们的包呢,这里就要使用packagist了
八,提交package
好了,我们项目就放在packagist上面了,这样大家就可以通过composer安装我们的包文件了
十:安装trois包文件
10.1 创建一个文件夹:compoer-test 并且进入,和4.1一样我们进入cmd命令行窗口
10.2 执行
composer require wandehua/trois dev-master # 安装我们的trois包
10.3 验证:
创建一个index.php文件,并写入以下代码并执行一下
输出了我们在Loader类中index方法的内容
完结
---------------------
作者:wan271920545
来源:CSDN
原文:https://blog.csdn.net/wan271920545/article/details/86578072
版权声明:本文为博主原创文章,转载请附上博文链接!
php composer 开发自己的包的更多相关文章
- 如何开发 Laravel 扩展包并发布到 Composer
如何开发 Laravel 扩展包并发布到 Composer 发布于 2019-01-22 cxp1539 1074 Vie 开发扩展包 我们来做一个根据第一个字符或者汉字生成头像的larave ...
- 基于Composer的Laravel扩展包开发工作流 ,实现laravle项目的文件管理(记录成长)
PHP Composer包开发 基于Composer的Laravel扩展包开发工作流 实现laravle项目的文件管理,添加文件/文件夹,删除文件,查看代码/文件(代码支持缩进,支持语法高亮) com ...
- 如何正确使用 Composer 安装 Laravel 扩展包
我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的: composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害. 因为 composer ...
- 使用 Composer 安装Laravel扩展包的几种方法
使用 Composer 安装Laravel扩展包的几种方法 以下的三种方法都是需要你在项目的根目录运行 第一种:composer install 如有 composer.lock 文件,直接安装,否则 ...
- Composer安装php插件包中有哪些坑
Composer安装php插件包中有哪些坑 一.总结 一句话总结:不要盲从扩展官方的composer安装命令,有时候也会出错 我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 ...
- J2EE开发时的包命名规则
http://www.blogjava.net/paulwong/archive/2012/04/15/374675.html 转一个J2EE开发时的包命名规则,养成良好的开发习惯 代码编写规范目的: ...
- 如何开发一个npm包并发布到npm中央仓库
转自: https://liaolongdong.com/2019/01/24/publish-public-npm.html 如何开发一个npm包并发布到npm中央仓库需求背景:平时在项目工作中可能 ...
- spring boot开发,jar包一个一个来启动太麻烦了,写一个bat文件一键启动
spring boot开发,jar包一个一个来启动太麻烦了,写一个bat文件一键启动 @echo offcd D:\workProject\bushustart cmd /c "title ...
- 基于Composer的Laravel扩展包开发工作流
使用场景 在引用第三方包的时候,对第三方包有改动需求,需要将代码放在自己的仓库:并且自己的其他项目也有需求引用自定义的第三方包:甚至自己会发布修改后的第三方包: 读完本文你讲获得: Git Submo ...
随机推荐
- TCP协议(包括TCP的连接过程,数据分段,TCP有关服务器优化)
Transmission Control Protocol/Internet Protocol 传输控制协议/因特网互联协议 TCP/IP是一个Protocol Stack(协议栈),包括TCP.IP ...
- Redis主从复制配置+哨兵模式
架构设计: master:s0 slave:s1.s2 主机映射信息如下: 192.168.32.100 s0 192.168.32.101 s1 192.168.32.102 s2 1.安装Redi ...
- Linux - TCP/IP网络协议基础
1.0 Tcp / IP 背景介绍 上世纪70年代,随着计算机的发展,人们意识到如果想要发挥计算机的更大作用,就要讲世界各地的计算机连接起来. 但是简单的连接时不够的,因为计算机之间无法沟通.因此设计 ...
- [Python之路] 多种方式实现并发Web Server
下面我们使用Python来实现并发的Web Server,其中采用了多进程.多线程.协程.单进程单线程非阻塞的方式. 一.使用子进程来实现并发Web Server 参照 https://www.cnb ...
- MessagePack Java Jackson Dataformat 不使用 str8 数据类型的序列化
老的 msgpack-java(例如 0.6.7)并不支持 MessagePack str8 数据类型. 当你的希望的你的应用程序需要支持老的版本的话,你需要禁用这个数据类型,例如使用下面的语句: M ...
- js基础----数组
1.数组如何定义 //第一种定义方法 var arr=[1,2,3,4]; //第二种定义方法 var arr=new Array(1,2,3,4); 两者没有任何区别,[]的性能可能略高,因为代码短 ...
- B. Tell Your World(几何数学 + 思维)
B. Tell Your World time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- MySQL_8.0与5.7区别之账户与安全
一.创建用户和用户授权 MySQL5.7创建用户和用户授权命令可以同时执行 grant all privileges on *.* to 'Gary'@'%' identified by 'Gary@ ...
- [洛谷P3941]:入阵曲(前缀和+桶)
题目传送门 题目背景 丹青千秋酿,一醉解愁肠.无悔少年枉,只愿壮志狂. 题目描述 小$F$很喜欢数学,但是到了高中以后数学总是考不好.有一天,他在数学课上发起了呆:他想起了过去的一年.一年前,当他初识 ...
- HashMap在什么场景下会由哪些内部方法导致线程不安全,至少给出一种场景
一直以来只是知道HashMap是线程不安全的,但是到底HashMap为什么线程不安全,多线程并发的时候在什么情况下可能出现问题? HashMap底层是一个Entry数组,当发生hash冲突的时候,ha ...