2019独角兽企业重金招聘Python工程师标准>>>
Composer命令行集锦及小案例 - 2
上一篇我们讲了9个命令,这回把接下来的命令都说一说。
config
顾名思义,使用此命令可以编辑 Composer 的一些基本设置,无论是本地的 composer.json 或者全局的 config.json 文件。
我们可以使用 composer config --list 来看看当下可以配置的所有项(composer默认项 + 当前项目项,当前项目优先)。
当然我们可以使用 composer config --list --global 列出项目的全局配置(composer默认项 + 全局配置项,全局优先)。
通过config我们首先可以查看当前项目的配置信息,比如bin文件夹,cache等等,这里列出几个。
[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
.......
当然除了查看,我们也能修改某个配置项,比如下面的代码
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的时候就有如下的语句
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命令的结果。
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来检查,传递一个参数即可,如下面代码。
composer depends --link-type=require-dev emojione/emojione
diagnose
错误诊断,要注意的是这个命令只是检查composer.json及composer一些配置项是否正确,不检查依赖逻辑。看看下面代码,检查的流程。
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)是个性能优化选项,在生产环境如下命令可以提高加载性能。
composer dumpautoload --optimize
不加--optimize这一选项,你可能会发现20%到25%的性能损失。
global
允许你在 COMPOSER_HOME 目录下执行其它命令,像 install、require 或 update。看下面代码
composer global require abei2017/yii2-emoji
将 abei2017/yii2-emoji 全局安装并使用。
info
这个参数比较简单,如果你用 composer info 则会直接列出当前项目的所有依赖(名称+版本+简介),如果你使用 composer info abei2017/yii2-emoji跟了一个扩展,则将扩展的composer.json内容整理下显示出来。
licenses
将当前项目所有依赖的协议都列出来,方便你查询,如下面的代码
//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内
composer require abei2017/yii2-emoji
改命令参数也很多
- --prefer-source: 当有可用的包时,从 source 安装。
- --prefer-dist: 当有可用的包时,从 dist 安装。
- --dev: 安装 require-dev 字段中列出的包。
- --no-update: 禁用依赖关系的自动更新。
- --no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。
- --update-with-dependencies 一并更新新装包的依赖。
小结
写了好多,防止大家看着累,先到这里,下一篇把剩下的几个说完。另外针对于requrie / remove的参数比较多,会单独拿出一篇来说。
Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
|
|
|
|
|
Options : History : Feedback : Donate | Close |