PHP创建自己的composer

composer是如何安装的:

1、composer命令安装项目包A,下载A到本地
2、自动执行A中composer.json,发现里面的require:{B} 并下载B

3、如果B的composer.json中require还有值,则继续下载

怎么让自己的项目,用composer一键安装:

composer和git类似,可以本地安装和远程安装

本地用composer init 和composer install

远程需要注册https://packagist.org/

下面介绍远程的方式

composer远程

本文介绍项目****分成2个包,项目包A,类库包B

A是TP框架,B是自己封装的类

在发布项目之前需要在https://github.com/上与https://packagist.org/上分别申请一个账号,github主要存储我们开发好的项目资源,packagist上发布的为composer项目。

申请好账号后,先在github上建立一个项目:

将下面的信息填写完整

image.png

同时创建好两个这样的项目,一个存放项目A,一个存储类库B。

类库包

需要注意的是autoload,psr-4里面有个 "ruhua\": "src/",这里的意思是插件的命名空间需要前面有个ruhua,并且路径在src文件夹中,才能进行访问:

结构****如下:

QQ截图20200728164146.png

conposer.json如下:

{
    "name": "qy/ruhua-engine",
    "description": "ruhua-engine",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "xxf",
            "email": "2421912566@qq.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {},
    "autoload": {
        "psr-4": {
            "ruhua\\": "src/"
        }
    }
}
image.png

在src的所有文件在namespace的前面需要加上ruhua,插件下载后,我们便可以在控制器中调用。

下一步将开发好的插件上传到git上,从cms进入插件目录

点击https://packagist.org/上的Submit

image.png

从git 上找到地址并复制

image.png

将地址放在输入框里面,并点击确认,检测完没问题后再点击以下,插件就发布完毕。

image.png

项目包

将插件需要的配置文件配置好,并在composer.json加入刚发布插件的名称和版本号,再按照以上步骤上传到另一个项目中,等待几分钟后下载即可。

结构****如下:

QQ截图20200728164131.png

conposer.json如下:

QQ截图20200728162842.png

如何下载?

首页有个搜索框,我们搜索以及上传的composer项目:

image.png
image.png

点击项目进入会有一个下载的命令,复制后再终端下载即可。
composer create-project qy/ruhua


composer 设置镜像地址

当我们在发布包后,如果获取不到报错怎么办,有可能是镜像的问题

//查看全局设置
composer config -gl
//第一种:设置国内镜像
composer config -g repo.packagist composer https://packagist.phpcomposer.com
//第二种:设置国内镜像
composer config -g repo.packagist composer https://packagist.laravel-china.org
//第三种:设置国内镜像
composer config -g repos.packagist composer https://php.cnpkg.org

报错 InvalidArgumentException

Could not find package ruhua/api with stability stable

当你右侧只有dev-master版本时,安装需要****加上指定版本号

QQ截图20200902111131.png
composer create-project ruhua/api:dev-master

如何添加 packagist 库的版本

其实对应的是git tags的版本

git commit -m'xxx'
git tag v1.0 
git push origin v1.0

更新packagist 库,此时右侧就有1.0版本了,在执行即可安装(如果失败等几分钟)

composer create-project ruhua/api

composer.json中的~与^区别

~表示版本号只能改变最末尾那段(如果是 ~x.y 末尾就是 y,如果是 ~x.y.z 末尾就是 z)
~1.2.3 代表 1.2.3 <= 版本号 < 1.3.0
~1.2   代表  1.2 <= 版本号 <2.0
^表示除了大版本号以外,小版本号和补丁版本号都可以变
^1.2.3 代表 1.2.3 <= 版本号 < 2.0.0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355