当前位置: 首页 > 后端技术 > PHP

[转]composer-文档-命令行

时间:2023-03-29 20:45:26 PHP

原文地址:composer命令行全局参数以下参数可与各命令配合使用:--verbose(-v):增加反馈信息的详细程度。-v表示正常输出。-vv意味着更详细的输出。-vvv用于调试。--help(-h):显示帮助信息。--quiet(-q):抑制任何输出。--no-interaction(-n):不询问任何交互问题。--working-dir(-d):如果指定,使用给定的目录作为工作目录。--profile:显示时间和内存使用信息。--ansi:强制ANSI输出。--no-ansi:关闭ANSI输出。--version(-V):显示当前应用的版本信息。进程退出代码0:正常1:一般/未知错误2:依赖处理错误初始化init在“库”一章中,我们看到了如何手动创建composer.json文件。实际上有一个init命令可以使这更容易。当您运行该命令时,它会以交互方式要求您填写一些信息,同时使用一些智能默认值。phpcomposer.pharinitinitialization-parameters--name:包名。--description:包的描述。--author:包的作者。--homepage:包的主页。--require:其他需要依赖的包必须有版本约束。并且应该遵循格式foo/bar:1.0.0。--require-dev:开发版的依赖包,内容格式同--require。--stability(-s):最小稳定性字段的值。installinstall命令从当前目录读取composer.json文件,处理依赖关系,并将其安装到vendor目录中。phpcomposer.pharinstall如果当前目录下有composer.lock文件,则会从该文件中读取依赖版本,而不是根据composer.json文件获取依赖。这确保了库的每个消费者都获得相同版本的依赖项。如果没有composer.lock文件,composer会在处理依赖后创建它。installation-parameters--prefer-source:下载包有source和dist两种方式。对于稳定版本,composer将默认使用dist方法。source代表版本控制源。如果--prefer-source启用,composer将从源安装(如果可用)。如果您想对项目应用错误修复,这将很有用。并且可以直接从本地仓库获取依赖。--prefer-dist:与--prefer-source相反,composer会尽可能从dist获取,这会大大加快在构建服务器上的安装速度。如果您不知道如何正确设置它,这也是一种回避git问题的方法。--dry-run:如果你只是想演示而不实际安装一个包,你可以运行--dry-run命令,它会模拟安装并显示会发生什么。--dev:安装require-dev字段中列出的包(这是默认设置)。--no-dev:跳过require-dev字段中列出的包。--no-scripts:跳过composer.json文件中定义的脚本。--no-plugins:关闭插件。--no-progress:移除进度信息,可以避免在一些不处理换行的终端或脚本中混淆显示。--optimize-autoloader(-o):将PSR-0/4自动加载转换为类映射以获得更快的加载支持。特别推荐用于生产环境,但不是默认设置,因为它需要一些时间才能运行。updateupdate要获取最新版本的依赖项,并更新composer.lock文件,您应该使用update命令。phpcomposer.pharupdate这将解决项目的所有依赖项并将确切的版本号写入composer.lock。如果你只想更新几个包,你可以像这样单独列出它们:phpcomposer.pharupdatevendor/packagevendor/package2你也可以使用通配符进行批量更新:phpcomposer.pharupdatevendor/*update-parameters--prefer-source:当包可用时从源安装。--prefer-dist:当包可用时从dist安装。--dry-run:模拟命令而不做实际操作。--dev:安装require-dev字段中列出的包(这是默认设置)。--no-dev:跳过require-dev字段中列出的包。--no-scripts:跳过composer.json文件中定义的脚本。--no-plugins:关闭插件。--no-progress:移除进度信息,可以避免在一些不处理换行的终端或脚本中混淆显示。--optimize-autoloader(-o):将PSR-0/4自动加载转换为类映射以获得更快的加载支持。特别推荐用于生产环境,但不是默认设置,因为它需要一些时间才能运行。--lock:只更新锁文件的哈希值,抑制关于过时锁文件的警告。--with-dependencies还会更新白名单中包的依赖,这个会递归更新。声明依赖require命令将新的依赖添加到当前目录中的composer.json文件中。phpcomposer.pharrequire添加或更改依赖项时,将安装或更新修改后的依赖项。如果不想交互指定依赖,可以直接在这个命令中指定依赖。phpcomposer.pharrequirevendor/package:2.*vendor/package2:dev-masterdeclaredependencies-parameters--prefer-source:当包可用时从源安装。--prefer-dist:当包可用时从dist安装。--dev:安装require-dev字段中列出的包。--no-update:禁用依赖项的自动更新。--no-progress:移除进度信息,可以避免在一些不处理换行的终端或脚本中混淆显示。--update-with-dependencies还会更新新安装包的依赖项。全局执行globalglobal命令允许您从COMPOSER_HOME目录中执行其他命令,如安装、要求或更新。如果你将$COMPOSER_HOME/vendor/bin添加到你的$PATH环境变量,你可以使用它从命令行安装全局应用程序,这里是一个例子:phpcomposer.pharglobalrequirefabpot/php-cs-fixer:dev-master现在php-cs-fixer在全球可用(假设你已经设置了你的PATH)。如果以后要更新,只需要运行全局更新:phpcomposer.pharglobalupdatesearchsearch命令可以搜索当前项目的依赖包,一般只搜索packagist.org上的包,你可以只需键入您的搜索条件。phpcomposer.pharsearchmonolog也可以通过传递多个参数进行多条件搜索。search-parameters--only-name(-N):只搜索指定的名字(精确匹配)。Showshow要列出所有可用的包,您可以使用show命令。phpcomposer.pharshow如果你想查看一个包的详细信息,你可以输入一个包名。phpcomposer.pharshowmonolog/monologname:monolog/monologversions:master-dev,1.0.2,1.0.1,1.0.0,1.0.0-RC1type:librarynames:monolog/monologsource:[git]http://github.com/Seldaek/monolog.git3d4e60d0cbc4b888fe5ad223d77964428b1978dadist:[zip]http://github.com/Seldaek/monolog/zipball/3d4e60d0cbc4b888fe5ad223d77964428b1978da3d4e60d0cbc4b888fe5ad223d77964428b1978dalicense:MITautoloadpsr-0Monolog:src/requiresphp>=5.3.0你甚至可以输入一个软件包的版本数字显示有关该版本的详细信息。phpcomposer.pharshowmonolog/monolog1.0.2show-parameters--installed(-i):列出已安装的依赖项。--platform(-p):仅列出平台包(PHP及其扩展)。--self(-s):只列出当前项目信息。依赖检测dependsdepends命令可以发现你项目中安装的某个包是否被其他包依赖,并列出它们。phpcomposer.phardepends--link-type=requiremonolog/monolognrk/monolog-fluentpoc/pocpropel/propelsymfony/monolog-bridgesymfony/symfonydependencydetection-parameter--link-type:检测的类型,默认是require或者it可以要求开发。在提交composer.json文件之前和创建标签之前,你应该始终运行validate命令。它会检查你的composer.json文件是否有效phpcomposer.pharvalidatevalidity检测参数--no-check-all:Composer是否进行了完整的验证。依赖包状态检测status如果你经常修改依赖包中的代码,并且它们是从源码(自定义源码)安装的,那么status命令可以让你检测,如果你有本地改动它会提示你。phpcomposer.pharstatus你可以使用--verbose系列参数(-v|vv|vvv)来获取更详细的细节:phpcomposer.pharstatus-v你在以下依赖项中有变化:vendor/seld/jsonlint:MREADME.mdownself-updateself-update要将Composer本身升级到最新版本,只需运行self-update命令。它将用最新版本替换您的composer.phar文件。phpcomposer.pharself-update如果你想升级到特定的版本,你可以简单地这样指定:phpcomposer.pharself-update1.0.0-alpha7如果你已经为整个系统安装了Composer(参见全局安装),您可能需要以root权限运行它:sudocomposerself-updateself-update--parameters--rollback(-r):回滚到您安装的最后一个版本。--clean-backups:在更新期间删除旧备份,使更新的当前版本成为唯一可用的备份。更改配置configconfig命令允许您在本地composer.json或全局config.json文件中编辑Composer的一些基本设置。phpcomposer.pharconfig--listchangeconfiguration-usemethodconfig[options][setting-key][setting-value1]...[setting-valueN]setting-key是一个配置选项的名字,setting-value1是一个配置值。数组可以用作配置值(如github-protocols),允许多个设置值。有关有效的配置选项,请参阅“体系结构”一章中的配置。change-config-parameters--global(-g):对位于$COMPOSER_HOME/config.json的全局配置文件进行操作。如果不指定该参数,该命令会影响当前项目的composer.json文件,或者--file参数指向的文件。--editor(-e):使用文本编辑器打开composer.json文件。默认总是打开当前项目的文件。当--global参数存在时,将打开全局composer.json文件。--unset:移除setting-key命名的配置选项。--list(-l):显示当前配置选项的列表。当--global参数存在时,将显示全局配置选项列表。--file="..."(-f):对指定文件而不是composer.json进行操作。注意:不能与--global参数一起使用。修改包源config命令除了可以修改配置选项外,还支持通过以下方式修改源信息:phpcomposer.pharconfigrepositories.foovcshttp://github.com/foo/bar创建项目create-project你可以使用Composer从当前的包中创建一个新项目。这相当于执行gitclone或svncheckout命令将包的依赖项安装到它自己的vendor目录中。此命令有几个常见用途:您可以快速部署您的应用程序。您可以签出任何资源包并为其开发补丁。多人开发项目可以用它来加速应用程序的初始化。要创建一个新的基于Composer的项目,您可以使用“create-project”命令。传递包名称,它将为您创建项目目录。你也可以在第三个参数中指定版本号,否则将获取最新版本。如果该目录当前不存在,将在安装过程中自动创建。phpcomposer.pharcreate-projectdoctrine/ormpath2.2.*或者,您可以使用现有的composer.json文件启动项目,而不是使用此命令。默认情况下,此命令将查找您在packagist.org上指定的包。create-project-parameters--repository-url:提供一个自定义存储库来搜索包,这将用来代替packagist.org。可以是composer存储库的HTTPURL,也可以是packages.json文件的本地路径。--stability(-s):资源包的最低稳定版本,默认是稳定的。--prefer-source:当包可用时从源安装。--prefer-dist:当包可用时从dist安装。--dev:安装require-dev字段中列出的包。--no-install:禁用安装包依赖项。--no-plugins:禁用插件。--no-scripts:禁止执行根资源包中定义的脚本。--no-progress:移除进度信息,可以避免在一些不处理换行的终端或脚本中混淆显示。--keep-vcs:创建时跳过丢失的VCS。如果您在非交互模式下运行create命令,这将很有用。打印自动加载索引dump-autoload在某些情况下,您需要更新自动加载器,例如将新类添加到包中。您可以使用dump-autoload来执行此操作,而无需执行安装或更新命令。此外,出于性能原因,它还可以打印优化的PSR-0/4兼容类的索引。大型应用中会有很多class文件,autoloader会在每次请求时占用很大一部分时间。在开发的时候使用classmaps可能不方便,但是仍然可以得到PSR-0/4规范带来的便利。printautoloadingindex-parameters--optimize(-o):将PSR-0/4自动加载转换为类映射以加快加载速度。这在生产环境中特别有用,但可能需要一些时间才能运行,因此目前不是默认设置。--no-dev:禁用自动加载开发规则。查看许可协议licenses列出了安装的每个包的名称、版本和许可协议。您可以使用--format=json参数获取JSON格式的输出。执行脚本run-script您可以运行此命令来手动执行脚本,只需指定脚本的名称,可选的--no-dev参数允许您禁用开发者模式。诊断diagnose如果您认为发现了错误或程序运行异常,您可能需要运行诊断命令来帮助您检测一些常见问题。phpcomposer.phardiagnosearchive该命令用于对指定包的指定版本进行zip/tar归档。它还可用于存档整个项目,不包括排除/忽略的文件。phpcomposer.phararchivevendor/package2.0.21--format=ziparchive-parameters--format(-f):指定存档格式:tar或zip(默认为tar)。--dir:指定存档存放的目录(默认为当前目录)。获取帮助信息help使用help获取指定命令的帮助信息。phpcomposer.pharhelpinstallenvironmentvariables你可以设置一些环境变量来覆盖默认配置。建议尽可能在composer.json的config字段中设置这些值,而不是通过命令行设置环境变量。值得注意的是,环境变量中的值将始终优先于composer.json中指定的值。COMPOSER环境变量COMPOSER可以为composer.json文件指定另一个文件名。例如:COMPOSER=composer-other.jsonphpcomposer.pharinstallCOMPOSER_ROOT_VERSION通过设置这个环境变量,可以指定根包的版本,如果程序无法从VCS中猜出版本号,并且没有声明在作曲家.json文件。COMPOSER_VENDOR_DIR通过设置这个环境变量,可以指定composer将依赖安装在vendor以外的目录中。COMPOSER_BIN_DIR通过设置该环境变量,可以将bin(VendorBinaries)目录指定为vendor/bin以外的目录。http_proxy或HTTP_PROXY如果您通过HTTP代理使用Composer,则可以使用http_proxy或HTTP_PROXY环境变量。只需将其设置为代理服务器的URL即可。许多操作系统已经为您的服务设置了这个变量。建议定义http_proxy(小写)或两者。因为像git或curl这样的工具会使用小写版本的http_proxy。另外,也可以使用gitconfig--globalhttp.proxy单独设置git代理。no_proxy如果您正在使用代理服务器并希望禁用某些域的代理,您可以使用no_proxy环境变量。只需输入以逗号分隔的域排除列表。此环境变量接受域名、IP和CIDR地址块。您可以将其限制为一个端口(例如::80)。您也可以将其设置为*以忽略所有HTTP代理请求。HTTP_PROXY_REQUEST_FULLURI如果你使用HTTP代理,但它不支持request_fulluri标签,那么你应该将此环境变量设置为false或0以防止composer从request_fulluri读取配置。HTTPS_PROXY_REQUEST_FULLURI如果你使用HTTPS代理,但它不支持request_fulluri标签,那么你应该将此环境变量设置为false或0以防止composer从request_fulluri读取配置。COMPOSER_HOMECOMPOSER_HOME环境变量允许您更改Composer的主目录。这是一个所有项目共享的隐藏全局目录(本机所有用户均可访问)。它在每个系统上的默认值是:*nix/home//.composer。OSX/Users/<用户>/.composer。WindowsC:\Users\<用户>\AppData\Roaming\Composer。COMPOSER_HOME/config.json您可以将config.json文件放在COMPOSER_HOME目录中。当您执行安装和更新命令时,Composer会将其与项目的composer.json文件合并。该文件允许您为用户的项目设置配置信息和存储库。如果全局和项目中存在相同的配置项,则项目中的composer.json文件具有更高的优先级。COMPOSER_CACHE_DIRCOMPOSER_CACHE_DIR环境变量允许您设置Composer的缓存目录,也可以通过cache-dir配置。它在每个系统上的默认值是:*nix和OSX$COMPOSER_HOME/cache。WindowsC:\Users\<用户>\AppData\Local\Composer或%LOCALAPPDATA%/Composer。COMPOSER_PROCESS_TIMEOUT环境变量控制Composer等待执行命令(例如:git命令)的时间。默认值为300秒(5分钟)。COMPOSER_DISCARD_CHANGES环境变量控制丢弃更改配置选项。COMPOSER_NO_INTERACTION如果设置为1,这个环境变量会导致Composer在执行每条命令时放弃交互,相当于对所有命令都使用--no-interaction。这可以在构建虚拟机/持续集成服务器时设置。