以往都是在项目直接写自己的包文件,并没有把他放在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 开发自己的包的更多相关文章

  1. 如何开发 Laravel 扩展包并发布到 Composer

    如何开发 Laravel 扩展包并发布到 Composer  发布于 2019-01-22 cxp1539  1074 Vie   开发扩展包 我们来做一个根据第一个字符或者汉字生成头像的larave ...

  2. 基于Composer的Laravel扩展包开发工作流 ,实现laravle项目的文件管理(记录成长)

    PHP Composer包开发 基于Composer的Laravel扩展包开发工作流 实现laravle项目的文件管理,添加文件/文件夹,删除文件,查看代码/文件(代码支持缩进,支持语法高亮) com ...

  3. 如何正确使用 Composer 安装 Laravel 扩展包

    我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的: composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害. 因为 composer ...

  4. 使用 Composer 安装Laravel扩展包的几种方法

    使用 Composer 安装Laravel扩展包的几种方法 以下的三种方法都是需要你在项目的根目录运行 第一种:composer install 如有 composer.lock 文件,直接安装,否则 ...

  5. Composer安装php插件包中有哪些坑

    Composer安装php插件包中有哪些坑 一.总结 一句话总结:不要盲从扩展官方的composer安装命令,有时候也会出错 我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 ...

  6. J2EE开发时的包命名规则

    http://www.blogjava.net/paulwong/archive/2012/04/15/374675.html 转一个J2EE开发时的包命名规则,养成良好的开发习惯 代码编写规范目的: ...

  7. 如何开发一个npm包并发布到npm中央仓库

    转自: https://liaolongdong.com/2019/01/24/publish-public-npm.html 如何开发一个npm包并发布到npm中央仓库需求背景:平时在项目工作中可能 ...

  8. spring boot开发,jar包一个一个来启动太麻烦了,写一个bat文件一键启动

    spring boot开发,jar包一个一个来启动太麻烦了,写一个bat文件一键启动 @echo offcd D:\workProject\bushustart cmd /c "title ...

  9. 基于Composer的Laravel扩展包开发工作流

    使用场景 在引用第三方包的时候,对第三方包有改动需求,需要将代码放在自己的仓库:并且自己的其他项目也有需求引用自定义的第三方包:甚至自己会发布修改后的第三方包: 读完本文你讲获得: Git Submo ...

随机推荐

  1. linux内核 同步

    锁 linux本身实现了集中锁机制,各种锁机制之间的差别是,当锁已经被其他线程持有的时候,一些锁使用自旋的方式来等待,另外一些锁会当当前线程改变为睡眠状态然后等待被唤醒. 锁的争用 如果一个锁处于高度 ...

  2. Ubuntu各个版本下载

    官网:https://www.ubuntu.com/download/desktop 没找到历史版本,且下载速度很慢 在网易镜像站下载ubuntu: 网址:http://mirrors.163.com ...

  3. Golang GC 垃圾回收机制详解

    摘要 在实际使用 go 语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究.本文对研究的结果进行一下总结. 什么是垃圾回收? 曾几何时,内存管理是程序员开发应 ...

  4. python面试题--连续出现最大次数

    确实有段时间没怎么写python,手写还不上机是真的难受. 而且break 跳出循环最内一层的事情都要想一下才能写得出来. 题目如下: 寻找一个字符串最大连续出现次数,并放入字典中, s=" ...

  5. Pandas中DataFrame数据合并、连接(concat、merge、join)之join

    pandas.DataFrame.join 自己弄了很久,一看官网.感觉自己宛如智障.不要脸了,直接抄 DataFrame.join(other, on=None, how='left', lsuff ...

  6. [Functional Programming] propSatisfies with implies

    // implies :: ((a -> Boolean), (a -> Boolean)) -> a -> Boolean const implies = (p, q) =& ...

  7. 【JZOJ5801】【2018.8.12省选模拟】circular

    题目大意 分析 把环拆开 线段其实就是区间 对于每个区间,向在TA后面并且b_i最小的区间连边, 然后从每个区间(ai,bi)开始,在保证跳到的区间(aj,bj),bj<=ai+m的情况下向后倍 ...

  8. 【Java Web】简易商品信息管理系统——首个Web项目

    正文之前 在学习了一段时间的Java Web的内容之后,当然需要有个项目来练练手,我相信大多数人的首选项目都是信息管理系统吧,所以我选择了商品信息管理系统 目前项目源码已全部上传至GitHub,欢迎大 ...

  9. 解决xshell无法连接virtualbox中的虚拟机(Ubuntu18.04)的问题

    遇到这个问题第一反应是是否安装相应的组件: sudo apt-get install openssh-server 开启防火墙端口 firewall-cmd --zone=/tcp --permane ...

  10. CentOS8编译openocd-0.10.0

    1.sudo yum install libusbx-devel 2. ./configure --prefix=$HOME/openocd-0.10.0 --enable-jlink CFLAGS= ...