PHP创建自己的composer

2020-07-29  本文已影响0人  wyc0859

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
上一篇下一篇

猜你喜欢

热点阅读