前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Composer系列之四

Composer系列之四

作者头像
botkenni
发布2019-09-02 17:21:55
5640
发布2019-09-02 17:21:55
举报
文章被收录于专栏:IT码农IT码农

Composer命令行集锦及小案例 - 2

上一篇我们讲了9个命令,这回把接下来的命令都说一说。

config

顾名思义,使用此命令可以编辑 Composer 的一些基本设置,无论是本地的 composer.json 或者全局的 config.json 文件。

我们可以使用 composer config --list 来看看当下可以配置的所有项(composer默认项 + 当前项目项,当前项目优先)。

当然我们可以使用 composer config --list --global 列出项目的全局配置(composer默认项 + 全局配置项,全局优先)。

通过config我们首先可以查看当前项目的配置信息,比如bin文件夹,cache等等,这里列出几个。

代码语言:javascript
复制
[repositories.packagist.org.type] composer
[repositories.packagist.org.url] https://packagist.phpcomposer.com
[process-timeout] 300
[use-include-path] false
[preferred-install] auto
[notify-on-install] true
[github-protocols] [https, ssh]
[vendor-dir] vendor (F:\wwwroot\BeiGeXiongDiLian/vendor)
[bin-dir] {$vendor-dir}/bin (F:\wwwroot\BeiGeXiongDiLian/vendor/bin)
[cache-dir] C:/Users/Administrator/AppData/Local/Composer
[data-dir] C:/Users/Administrator/AppData/Roaming/Composer
[cache-files-dir] {$cache-dir}/files (C:/Users/Administrator/AppData/Local/Composer/files)
[cache-repo-dir] {$cache-dir}/repo (C:/Users/Administrator/AppData/Local/Composer/repo)
[cache-vcs-dir] {$cache-dir}/vcs (C:/Users/Administrator/AppData/Local/Composer/vcs)
[cache-ttl] 15552000
[cache-files-ttl] 15552000
[cache-files-maxsize] 300MiB (314572800)
[bin-compat] auto
.......

当然除了查看,我们也能修改某个配置项,比如下面的代码

代码语言:javascript
复制
composer config process-timeout 1900
composer config -g process-timeout 1700
  • 第一行修改了当前项目的配置,信息在项目root目录的composer.json存储。
  • 第二行修改了全局的配置,信息在[data-dir]目录的config.json中存储。

当然如果配置项是数组形式,你可以多写几个value,空格分开。

当然config还有一些参数,比如--editor (用编辑器打开修改),--unset (移除某个配置项)等。

create-project

主要用来安装一个项目,比如我们在安装yii2的时候就有如下的语句

代码语言:javascript
复制
composer create-project --prefer-dist yiisoft/yii2-app-basic basic

这相当于执行了一个 git clone 或 svn checkout 命令后将这个包的依赖安装到它自己的 vendor 目录。

这个命令也有挺多的参数

  • --stability (-s): 资源包的最低稳定版本,默认为 stable。
  • --prefer-source: 当有可用的包时,从 source 安装。
  • --prefer-dist: 当有可用的包时,从 dist 安装。
  • --dev: 安装 require-dev 字段中列出的包。
  • --no-install: 禁止安装包的依赖。

depends

依赖性检测,命令可以查出已安装在你项目中的某个包,是否正在被其它的包所依赖,并列出他们。

假设我们为程序安装了abei2017/yii2-emoji,而yii2-emoji依赖于emojione/emojione,看看执行depends命令的结果。

代码语言:javascript
复制
composer depends emojione/emojione
abei2017/yii2-emoji  1.0.0  requires  emojione/emojione (^3.1)

composer depends abei2017/yii2-emoji
yiisoft/yii2-app-basic  -  requires  abei2017/yii2-emoji (^1.0)

看明白了吧?默认是根据json文件的require配置项检测,也可以根绝require-dev来检查,传递一个参数即可,如下面代码。

代码语言:javascript
复制
composer depends --link-type=require-dev emojione/emojione

diagnose

错误诊断,要注意的是这个命令只是检查composer.json及composer一些配置项是否正确,不检查依赖逻辑。看看下面代码,检查的流程。

代码语言:javascript
复制
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com oauth access: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0  87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B  0C708369 153E328C AD90147D AFE50952
OK
Checking composer version: OK

dump-autoload / dumpautoload

某些情况下你需要更新 autoloader,例如在你的包中加入了一个新的类。你可以使用 dump-autoload 来完成,而不必执行 install 或 update 命令。

它有两个参数:--optimize (-o) & --no-dev,其中--optimize (-o)是个性能优化选项,在生产环境如下命令可以提高加载性能。

代码语言:javascript
复制
composer dumpautoload --optimize

不加--optimize这一选项,你可能会发现20%到25%的性能损失。

global

允许你在 COMPOSER_HOME 目录下执行其它命令,像 install、require 或 update。看下面代码

代码语言:javascript
复制
composer global require abei2017/yii2-emoji

abei2017/yii2-emoji 全局安装并使用。

info

这个参数比较简单,如果你用 composer info 则会直接列出当前项目的所有依赖(名称+版本+简介),如果你使用 composer info abei2017/yii2-emoji跟了一个扩展,则将扩展的composer.json内容整理下显示出来。

licenses

将当前项目所有依赖的协议都列出来,方便你查询,如下面的代码

代码语言:javascript
复制
//composer licenses
abei2017/yii2-emoji                 1.0.0    MIT
behat/gherkin                       v4.4.5   MIT
bower-asset/bootstrap               v3.3.7   MIT
bower-asset/jquery                  2.2.4    MIT
bower-asset/jquery.inputmask        3.3.6    http://opensource.org/licenses/mit-license.php
bower-asset/punycode                v1.3.2   none
bower-asset/typeahead.js            v0.11.1  none
bower-asset/yii2-pjax               v2.0.6   MIT
cebe/markdown                       1.1.2    MIT
.......

list

好简单,列出所有命令。

show

列出所有可用的扩展,我们也可以使用比如 composer show abei2017/yii2-emoji 查看一个扩展的详情,还可以帅选 composer show abei2017/*

这个命令有一些参数

  • --all 这是一个很大的命令,列出在packagist.org上所有可用的扩展(名字 + 版本 + 简介)
  • --installed (-i) 列出我们项目安装的扩展
  • --platform (-p) 只列出平台扩展(php & extensions)。
  • --available (-a) 列出当前可以获得的扩展。
  • --self (-s) 列出 root扩展信息,即当前项目的。
  • --name-only (-N) 只显示名字(不显示版本和简介)
  • --path (-P) 显示当前项目安装的扩展的物理目录。
  • --tree 这个命令也不错,列出所有的依赖及其依赖关系
  • --outdated (-o) 列出所有有新版的扩展

outdated

这个命令也不错,等于composer show -lo

remove

删除一个扩展,该命令首先改动composer.json,删除相应的依赖,然后执行。如果要一次删除多个扩展,可以一次写出,空格分开即可。

这个命令也有很多参数,比如删除库后不进行依赖的更新等。

  • --dev: 从 require-dev 删除扩展。
  • --no-update: 禁用依赖关系的自动更新。
  • --no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。
  • --update-with-dependencies: 同时更新删除扩展的依赖扩展。

require

添加一个扩展并且更新到composer.json内

代码语言:javascript
复制
composer require abei2017/yii2-emoji

改命令参数也很多

  • --prefer-source: 当有可用的包时,从 source 安装。
  • --prefer-dist: 当有可用的包时,从 dist 安装。
  • --dev: 安装 require-dev 字段中列出的包。
  • --no-update: 禁用依赖关系的自动更新。
  • --no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。
  • --update-with-dependencies 一并更新新装包的依赖。

小结

写了好多,防止大家看着累,先到这里,下一篇把剩下的几个说完。另外针对于requrie / remove的参数比较多,会单独拿出一篇来说。

G

M

T

Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu

AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu

Text-to-speech function is limited to 200 characters

Options : History : Feedback : Donate

Close

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Composer命令行集锦及小案例 - 2
  • config
  • create-project
  • depends
  • diagnose
  • dump-autoload / dumpautoload
  • global
  • info
  • licenses
  • list
  • show
  • outdated
  • remove
  • require
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档