手写一个composer并上传发布

时间:2022-05-19 17:55:49

图片.png

1.常用命令

composer配置镜像

全局配置(推荐)

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

取消配置:

composer config -g --unset repos.packagist

当前项目配置

composer config repo.packagist composer https://mirrors.aliyun.com/composer/

取消配置

composer config --unset repos.packagist
composer install: 命令可以用于项目初始化后,初次安装依赖,且会优先读取composer.lock中的版本号,以尽可能的保证协作开发中包版本的一致性。

# 你可能会觉得每安装一个库都需要修改composer.json太麻烦,那么你可以直接使用require命令。require 命令,添加新的依赖包到composer.json文件中并执行更新。

composer require laravel/ui x.0.0 #下载指定版本,可指定

composer update:update命令无法在命令行中指定包版本号,需要手动修改composer.json文件

composer update foo/bar 更新单个库

# 创建项目

composer create-project doctrine/orm path 2.2.0

composer list:获取帮助信息;

composer init:以交互方式填写composer.json文件信息;

composer search:在当前项目中搜索依赖包;

composer show:列举所有可用的资源包;

composer show -t:树状列举所有可用的资源包;

composer show laravel/framework:这将向您显示安装的版本、它的许可证和依赖项以及它在本地安装的位置等信息。

composer outdated: 检测一下已安装的包,哪些有可以升级的;

composer outdated -m:如果希望高亮显示小的升级版本,可以使用 outdated 命令,以 --minor-only 或者 -m 参数 ;

composer why vlucas/phpdotenv:如果您想知道安装特定软件包的原因,可以使用 why 命令来确定哪些依赖项需要它;

composer why-not laravel/framework 5.8 -t:有时,一个或多个已安装的软件包将阻止安装或更新软件包。 ;

composer validate:检测composer.json文件是否有效;

composer create-project:基于composer创建一个新的项目;

composer dump-autoload:在添加新的类和目录映射是更新autoloader

# 为生产环境作准备优化一下自动加载

composer dump-autoload --optimize

composer remove laravel/ui :删除依赖后还需要去vender文件夹里,手动删除

composer status -v:您可以使用 --verbose 或 -v 参数来查看本地修改的软件包和文件

composer licenses:用于查询许可的完整列表:

#当你需要修改库的时候,克隆源代码就比下载包方便了。你可以使用–prefer-source来强制选择克隆源代码。

composer update symfony/yaml --prefer-source

2. 手动写一个composer包

step1:composer init 包名

图片.png

  • 包的名称,它包括供应商名称和项目名称,使用 / 分隔。

  • 对于需要发布的包(库),这是必须填写的。

  • 例如,phpmailer/phpmailer

step2:简介

  

图片.png

  • 一个包的简短描述。通常这个最长只有一行。

  • 对于需要发布的包(库),这是必须填写的。

step3:作者信息

图片.png

  • 这个对象必须包含以下的所有属性。

  • name: 作者的姓名,通常使用真名。

  • email: 作者的 email 地址。

  • homepage: 作者主页的 URL 地址。

  • role: 该作者在此项目中担任的角色(例:开发人员 或 翻译)。

step4:输入最低稳定版本

    

图片.png

可用的稳定性标识:dev、alpha、beta、RC、stable。,一般选择dev

版本默认的稳定性依次从左到右从大到小,越左边越稳定bug越少

step5:包类型

    

图片.png



    包的安装类型,默认为library。
    library: 这是默认类型,它会简单的将文件复制到 vendor 目录。
    project: 这表示当前包是一个项目,而不是一个库。例:框架应用程序 Symfony standard edition,内容管理系统 SilverStripe installer 或者完全成熟的分布式应用程序。使用 IDE 创建一个新的工作区时,这可以为其提供项目列表的初始化。
    metapackage: 当一个空的包,包含依赖并且需要触发依赖的安装,这将不会对系统写入额外的文件。因此这种安装类型并不需要一个 dist 或 source。
    composer-plugin: 一个安装类型为 composer-plugin 的包,它有一个自定义安装类型,可以为其它包提供一个 installler。详细请查看 自定义安装类型。   

step6:开源协议

    

图片.png

选择输入GPL,LGPL,BSD,MIT,Apache这些开源协议即可:

step7:是否依赖于其它包,是否依赖于其它环境,这边都yes即可

图片.png

    基于PHP,肯定先输入php

    

图片.png

     如果需要,还可以选择其他依赖比如guzzlehttp/guzzle

    

图片.png

    选择自己正确的

    

图片.png

step7:否以交互方式定义开发依赖项(需要开发)

step8:生成配置

图片.png

step8:安装

图片.png

step9:完成

   

图片.png

step9:编辑代码:

需要新建一个src和luwc的文件夹

图片.png

更新映射关系

编辑composer.json,增加如下内容,再执行composer dump-autoload命令

1

2

3

4

5

"autoload": {

    "psr-4": {

        "luwc\\":"src/luwc"

    }

}

图片.png

图片.png

编辑测试方法

require 'vendor/autoload.php';
echo \luwc\Des::authcode('aaa',555);

图片.png

step10: 将代码提到github中, 登录 Log in - Packagist 提交

图片.png

图片.png

图片.png

step11:打版本标签

git tag -a v1.0.1 -m "第一版"
git push origin v1.0.1

图片.png

step11使用:

composer require luwc/des

图片.png

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值