时间:2022-05-19 17:55:49
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 包名
-
包的名称,它包括供应商名称和项目名称,使用 / 分隔。
-
对于需要发布的包(库),这是必须填写的。
-
例如,phpmailer/phpmailer
step2:简介
-
一个包的简短描述。通常这个最长只有一行。
-
对于需要发布的包(库),这是必须填写的。
step3:作者信息
-
这个对象必须包含以下的所有属性。
-
name: 作者的姓名,通常使用真名。
-
email: 作者的 email 地址。
-
homepage: 作者主页的 URL 地址。
-
role: 该作者在此项目中担任的角色(例:开发人员 或 翻译)。
step4:输入最低稳定版本
可用的稳定性标识:dev、alpha、beta、RC、stable。
,一般选择dev
。
版本默认的稳定性依次从左到右从大到小,越左边越稳定bug越少
step5:包类型
包的安装类型,默认为library。
library: 这是默认类型,它会简单的将文件复制到 vendor 目录。
project: 这表示当前包是一个项目,而不是一个库。例:框架应用程序 Symfony standard edition,内容管理系统 SilverStripe installer 或者完全成熟的分布式应用程序。使用 IDE 创建一个新的工作区时,这可以为其提供项目列表的初始化。
metapackage: 当一个空的包,包含依赖并且需要触发依赖的安装,这将不会对系统写入额外的文件。因此这种安装类型并不需要一个 dist 或 source。
composer-plugin: 一个安装类型为 composer-plugin 的包,它有一个自定义安装类型,可以为其它包提供一个 installler。详细请查看 自定义安装类型。
step6:开源协议
选择输入GPL,LGPL,BSD,MIT,Apache
这些开源协议即可:
step7:是否依赖于其它包,是否依赖于其它环境,这边都yes即可
基于PHP,肯定先输入php
如果需要,还可以选择其他依赖比如guzzlehttp/guzzle
选择自己正确的
step7:否以交互方式定义开发依赖项(需要开发)
step8:生成配置
step8:安装
step9:完成
step9:编辑代码:
需要新建一个src
和luwc的文件夹
更新映射关系
编辑composer.json,增加如下内容,再执行composer dump-autoload命令
1 2 3 4 5 |
|
编辑测试方法
require 'vendor/autoload.php'; echo \luwc\Des::authcode('aaa',555);
step10: 将代码提到github中, 登录 Log in - Packagist 提交
step11:打版本标签
git tag -a v1.0.1 -m "第一版"
git push origin v1.0.1
step11使用:
composer require luwc/des