命令行界面/命令#

您已经学习了如何使用命令行界面执行以下操作东西。本章记录了所有可用的命令。

要从命令行获取帮助,请调用作曲家作曲家列表查看命令的完整列表,然后--帮助与其中任何一个结合可以为您提供更多信息。

正如Composer使用symfony/控制台如果不含糊,可以使用短名称调用命令。

php composer.phar转储

电话作曲家转储-自动加载.

Bash完井#

要安装bash补全,可以运行作曲家完成bash>completion.bash.这将创建一个补全.bash当前目录中的文件。

然后执行源完成.bash以在当前终端会话中启用它。

移动并重命名补全.bash文件到/etc/bash_completion.d/composer制造它在新的终端中自动加载。

全局选项#

以下选项可用于每个命令:

  • --详细(-v):增加消息的详细程度。
  • --帮助(-h):显示帮助信息。
  • --安静(-q):不要输出任何消息。
  • --无交互(-n):不要问任何交互式问题。
  • --无插头:禁用插件。
  • --无脚本:跳过中定义的脚本的执行作曲家.json.
  • --无卡:禁用缓存目录的使用。与设置COMPOSER_CACHE_DIR相同env var设置为/dev/null(或Windows上的NUL)。
  • --工作目录(-d):如果指定,请使用给定的目录作为工作目录。
  • --配置文件:显示计时和内存使用信息
  • --美国国家标准协会:强制ANSI输出。
  • --不同意:禁用ANSI输出。
  • --版本(-V):显示此应用程序版本。

流程退出代码#

  • 0:好 啊
  • 1:一般/未知错误代码
  • 2:依赖关系解决错误代码

初始化#

图书馆我们学习了如何创建作曲家.json手动操作。还有一个初始化命令可以执行此操作。

当您运行该命令时,它将以交互方式要求您填写字段,同时使用一些智能默认值。

php编写器.phar初始化

选项

  • --姓名:包的名称。
  • --描述:程序包的说明。
  • --作者:包的作者名称。
  • --类型:包的类型。
  • --主页:软件包的主页。
  • --要求:需要具有版本约束的包。应该是以格式foo/bar:1.0.0.
  • --require-dev(要求-版本):开发要求,参见--要求.
  • --稳定性(-s):的值最小稳定性字段。
  • --许可证(-l):软件包的许可证。
  • --存储库:提供一个(或多个)自定义存储库。它们将被存储在生成的composer.json中,用于提示需求列表。每个存储库都可以是指向的HTTP URL作曲家存储库或类似于存储库键接受。
  • --自动加载(-a):将PSR-4自动加载映射添加到composer.json。自动将包的命名空间映射到提供的目录。(应为相对路径,例如src/)另请参阅PSR-4自动加载.

安装/i#

这个安装命令读取作曲家.json从当前文件目录,解析依赖项,并将其安装到小贩.

php composer.phar安装

如果有作曲家.lock文件,它将使用从那里得到精确的版本,而不是解析它们。这确保了使用该库的每个人都将获得相同版本的依赖项。

如果没有作曲家.lock文件,Composer将在依赖项之后创建一个分辨率。

选项

  • --首选安装:下载软件包有两种方式:来源距离.Composer使用距离默认情况下。如果你通过了--prefer-install=源(或--首选源)Composer将从安装来源如果有。如果您想对项目并直接获取依赖项的本地git克隆。获取Composer使用的遗留行为来源自动用于开发包的版本,使用--prefer-install=自动。另请参阅安装配置首选.传递此标志将覆盖配置值。
  • --试运行:如果您想在没有实际安装软件包时,可以使用--干式运行。这将模拟安装并向您展示将发生的情况。
  • --仅下载:仅下载,不安装软件包。
  • --开发:安装中列出的软件包require-dev要求(这是默认行为)。
  • --无偏差:跳过安装中列出的程序包require-dev要求.自动加载器生成跳过自动加载的驱动程序规则。另请参见组件_NO_DEV.
  • --无自动加载器:跳过自动加载器生成。
  • --无利润:删除可能会干扰某些内容的进度显示不处理退格字符的终端或脚本。
  • --审计:安装完成后运行审核。
  • --审核格式:审核输出格式。必须是“table”、“plain”、“json”或“summary”(默认)。
  • --优化自动加载程序(-o):将PSR-0/4自动加载转换为classmap以获得更快的自动加载器。特别推荐用于生产,但可能需要有一点时间运行,因此默认情况下当前没有完成。
  • --类映射授权(-a):仅从类映射自动加载类。隐式启用--优化自动加载程序.
  • --apcu-自动装载机:使用APCu缓存已找到/未找到的类。
  • --apcu-autoloader-prefix:为APCu自动加载器缓存使用自定义前缀。隐式启用--apcu-自动装载机.
  • --ignore-platform-要求:忽略所有平台要求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器这样做不能实现这些。另请参见平台config选项。
  • --忽略平台请求:忽略特定的平台要求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器无法实现。可以通过通配符忽略多个要求。附录+使其只忽略需求的上限。例如,如果包要求电话:^7,然后选择--ignore-platform-req=php+将允许在PHP 8上安装,但在PHP 5.6上安装仍然会失败。

更新/u/升级#

为了获取依赖项的最新版本并更新作曲家.lock文件,您应该使用更新命令。此命令也是别名为升级因为它与升级如果你在思考属于适配基或类似的包管理器。

php composer.phar更新

这将解决项目的所有依赖关系并编写准确的版本进入之内组合锁.

如果您只想更新几个程序包,而不是全部,可以这样列出:

php composer.phar更新供应商/包供应商/包2

您还可以使用通配符一次更新一组包:

php composer.phar更新“供应商/*”

如果要将包降级到特定版本,而不更改您可以使用composer.json--带有并提供自定义版本约束:

php-composer.phar更新——供应商/包:2.0.1

请注意,通过上述操作,所有软件包都将更新。如果你只想使用更新为其提供自定义约束的程序包--带有,你可以跳过--带有而是使用部分更新语法的约束:

php-composer.phar更新供应商/包:2.0.1供应商/包2:3.0*

注:对于composer.json中还需要的包,自定义约束必须是现有约束的子集。composer.json约束仍然apply和composer.json不会被这些临时更新约束修改。

选项

  • --首选安装:下载软件包有两种方式:来源距离.Composer使用距离默认情况下。如果你通过了--prefer-install=源(或--首选源)Composer将从安装来源如果有。如果您想对项目并直接获取依赖项的本地git克隆。获取Composer使用的遗留行为来源自动用于开发包的版本,使用--prefer-install=自动。另请参阅安装配置首选.传递此标志将覆盖配置值。
  • --试运行:模拟命令而不实际执行任何操作。
  • --开发:安装中列出的软件包require-dev要求(这是默认行为)。
  • --无偏差:跳过安装中列出的程序包require-dev要求。自动加载器生成跳过自动加载的驱动程序规则。另请参见组件_NO_DEV.
  • --无安装:更新composer.lock文件后不运行安装步骤。
  • --无审计:更新composer.lock文件后不运行审核步骤。另请参见编剧_审核.
  • --听觉形态:审核输出格式。必须是“table”、“plain”、“json”或“summary”(默认)。
  • --锁定:覆盖锁文件哈希以取消关于锁文件超出的警告不更新包版本的日期。如果满足以下条件,将更新包元数据(如镜像和URL)他们变了。
  • --与:要添加的临时版本约束,例如foo/bar:1.0.0或foo/bar=1.0.0
  • --无自动加载器:跳过自动加载器生成。
  • --无利润:删除可能会干扰某些内容的进度显示不处理退格字符的终端或脚本。
  • --带依赖项(-w):还更新参数列表中包的依赖项,但根需求除外。
  • --具有所有相关性(-W):还更新参数列表中包的依赖项,包括根需求。
  • --优化自动加载程序(-o):将PSR-0/4自动加载转换为classmap以获得更快的自动加载器。特别推荐用于生产,但可能需要还有一点时间运行,因此目前默认情况下没有完成。
  • --类映射授权(-a):仅从类映射自动加载类。隐式启用--优化自动加载程序.
  • --apcu-自动装载机:使用APCu缓存找到的/非找到的类。
  • --apcu-autoloader-prefix:为APCu自动加载器缓存使用自定义前缀。隐式启用--apcu自动装弹机.
  • --ignore-platform-要求:忽略所有平台要求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器这样做不能实现这些。另请参见平台config选项。
  • --ignore-platform-req:忽略特定的平台要求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器无法实现。可以通过通配符忽略多个要求。附录+使其只忽略需求的上限。例如,如果包要求电话:^7,然后选择--ignore-platform-req=php+将允许在PHP 8上安装,但在PHP 5.6上安装仍然会失败。
  • --更稳定:首选依赖项的稳定版本。也可以通过COMPOSER_PREFER_STABLE=1环境变量。
  • --首选最小值:首选依赖项的最低版本。用于测试最小值需求的版本,通常与一起使用--更稳定。也可以通过COMPOSER_PREFER_LOWEST=1环境变量。
  • --最小变化(-m):在使用进行部分更新期间-w个/-W公司,仅执行绝对必要的操作对可传递依赖项的更改。也可以通过COMPOSER_MINIMAL_CHANGES=1 env变量进行设置。
  • --交互式:具有自动完成功能的交互式界面,用于选择要更新的包。
  • --root-reqs:将更新限制为一级依赖项。

指定其中一个单词镜子,,或没有什么因为参数与指定选项具有相同的效果--锁例如作曲家更新镜像作曲家更新--锁定.

要求/r#

这个要求命令将新包添加到作曲家.json文件来自当前目录。如果不存在任何文件,则会动态创建一个文件。

如果未指定包,Composer将提示您搜索包,并给定结果,提供所需的匹配项列表。

php composer.phar需要

添加/更改需求后,修改后的需求将已安装或更新。

如果您不想以交互方式选择需求,可以传递它们命令。

php composer.phar需要“vendor/package:2.*”vendor/package2:dev-master

如果未指定版本约束,作曲家将基于在可用的软件包版本上。

php composer.phar需要供应商/包供应商/包2

如果不想立即安装新的依赖项,可以使用--no-update调用它

选项

  • --开发:将包添加到require-dev要求.
  • --干运行:模拟命令而不实际执行任何操作。
  • --首选安装:下载软件包有两种方式:来源距离.Composer使用距离默认情况下。如果你通过--prefer-install=源(或--首选源)Composer将从安装来源如果有的话。如果您想对项目并直接获取依赖项的本地git克隆。获取Composer使用的遗留行为来源自动用于开发包的版本,使用--prefer-install=自动。另请参阅安装配置首选.传递此标志将覆盖配置值。
  • --无利润:删除可能会干扰某些内容的进度显示不处理退格字符的终端或脚本。
  • --无更新:禁用依赖项的自动更新(意味着--不安装)。
  • --无安装:更新composer.lock文件后不运行安装步骤。
  • --无审计:更新composer.lock文件后不运行审核步骤。另请参见编剧_审核.
  • --听觉形态:审核输出格式。必须是“table”、“plain”、“json”或“summary”(默认)。
  • --更新-非开发:使用运行依赖项更新--无偏差选项。另请参见组件_NO_DEV.
  • --使用依赖项更新(-w):还更新新需要的包的依赖项,但根需求除外。
  • --带所有依赖项的更新(-W):还更新新需要的包的依赖项,包括根需求。
  • --ignore-platform-要求:忽略所有平台要求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器这样做不能实现这些。另请参见平台config选项。
  • --ignore-platform-req:忽略特定的平台需求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器无法实现。可以通过通配符忽略多个要求。
  • --更稳定:首选依赖项的稳定版本。也可以通过COMPOSER_PREFER_STABLE=1环境变量。
  • --首选最小值:首选依赖项的最低版本。用于测试最小值需求的版本,通常与一起使用--更稳定。也可以通过COMPOSER_PREFER_LOWEST=1环境变量。
  • --最小变化(-m):在更新期间-w个/-W公司,仅执行绝对必要的操作对可传递依赖项的更改。也可以通过COMPOSER_MINIMAL_CHANGES=1 env var进行设置。
  • --分拣包装:保持包裹排序作曲家.json.
  • --优化自动加载程序(-o):将PSR-0/4自动加载转换为类映射获得更快的自动加载器。特别推荐用于生产,但可能需要一点时间才能运行,因此当前默认情况下不执行此操作。
  • --类映射授权(-a):仅从类映射自动加载类。隐式启用--优化自动加载程序.
  • --apcu-自动装载机:使用APCu缓存找到的/非找到的类。
  • --apcu-autoloader-prefix:为APCu自动加载器缓存使用自定义前缀。隐式启用--apcu-自动装载机.

删除/rm#

这个去除命令从作曲家.json文件来自当前目录。

php composer.phar删除供应商/包供应商/包2

删除需求后,修改后的需求将已卸载。

选项

  • --未使用的删除不再是直接或间接依赖项的未使用包
  • --开发:从中删除包需要dev.
  • --干运行:模拟命令而不实际执行任何操作。
  • --无利润:删除可能会干扰某些内容的进度显示不处理退格字符的终端或脚本。
  • --无更新:禁用依赖项的自动更新(暗示--no-install)。
  • --无安装:更新composer.lock文件后不运行安装步骤。
  • --无审计:安装完成后不运行审核步骤。另请参见编剧_审核.
  • --审核格式:审核输出格式。必须是“table”、“plain”、“json”或“summary”(默认)。
  • --更新-非开发:使用--no-dev选项运行依赖项更新。另请参见组件_NO_DEV.
  • --带依赖项的更新(-w):同时更新已删除包的依赖项。(不推荐,现在是默认行为)
  • --带所有依赖项的更新(-W):允许更新所有继承的依赖项,包括那些根需求。
  • --最小变化(-m):在更新期间-w个/-W公司,仅执行绝对必要的操作对可传递依赖项的更改。也可以通过COMPOSER_MINIMAL_CHANGES=1 env var进行设置。
  • --ignore-platform-要求:忽略所有平台要求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器这样做不能实现这些。另请参见平台config选项。
  • --ignore-platform-req:忽略特定的平台需求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器无法实现。可以通过通配符忽略多个要求。
  • --优化自动加载程序(-o):将PSR-0/4自动加载转换为类映射获得更快的自动加载器。特别推荐用于生产,但可能需要一点时间才能运行,因此当前默认情况下不执行此操作。
  • --类映射授权(-a):仅从类映射自动加载类。隐式启用--优化自动加载程序.
  • --apcu-自动装载机:使用APCu缓存找到的/非找到的类。
  • --apcu-autoloader-prefix:为APCu自动加载器缓存使用自定义前缀。隐式启用--apcu-自动装载机.

碰撞#

这个碰撞命令增加了composer.json需求的下限到当前安装的版本。这有助于确保您的依赖项不会由于其他冲突意外降级,可以稍微改进依赖项解析性能,因为它限制了包版本的数量作曲家必须注意。

在库上盲目运行此命令是不是建议使用,因为它会缩小范围您允许的依赖项,这可能会给您的用户带来依赖地狱。使用运行它--仅限开发人员在库上可能很好,但作为开发需求是库本地的,不影响包的使用者。

选项

  • --仅限开发人员:只有“require-dev”中的通气要求。
  • --无偏差:只有“require”中的通气要求。
  • --试运行:将包输出到bump,但不会执行任何操作。

重新安装#

这个重新安装命令按名称查找已安装的包,卸载并重新安装它们。这样可以进行全新安装如果你弄乱了一个包的文件,或者如果你想更改使用--prefer-install的安装类型。

php composer.phar重新安装acme/foo acme/bar

您可以指定多个要重新安装的软件包名称,或者使用通配符,一次选择多个包:

php composer.phar重新安装“acme/*”

选项

  • --首选安装:下载软件包有两种方式:来源距离.作曲家使用距离默认情况下。如果你通过--prefer-install=源(或--首选源)Composer将从安装来源如果有。如果您想对项目并直接获取依赖项的本地git克隆。获取Composer使用的遗留行为来源自动用于开发包的版本,使用--prefer-install=自动。另请参阅安装时配置参考.传递此标志将覆盖配置值。
  • --无自动加载器:跳过自动加载器生成。
  • --无利润:删除可能会干扰某些内容的进度显示不处理退格字符的终端或脚本。
  • --优化自动加载程序(-o):将PSR-0/4自动加载转换为classmap以获得更快的自动加载器。特别推荐用于生产,但可能需要有一点时间运行,因此目前默认情况下不执行。
  • --类映射授权(-a):仅从类映射中自动加载类。隐式启用--优化自动加载程序.
  • --apcu-自动装载机:使用APCu缓存找到的/非找到的类。
  • --apcu-autoloader-prefix:为APCu自动加载器缓存使用自定义前缀。隐式启用--apcu-自动装载机.
  • --ignore-platform-要求:忽略所有平台要求。只有这个在自动加载器生成上下文中对重新安装命令。
  • --ignore-platform-req:忽略特定的平台需求。只有这个在自动加载器生成上下文中对重新安装命令。可以通过通配符忽略多个需求。

检查平台-reqs#

check-platform-reqs命令检查PHP和扩展版本符合已安装软件包的平台要求。这可以使用验证生产服务器是否具有运行例如,安装后的项目。

与update/install不同,此命令将忽略config.platform设置和检查真正的平台软件包,这样您就可以确定您已经具备了所需的平台依赖性。

选项

  • --锁定:仅从锁定文件检查需求,而不是从已安装的包检查需求。
  • --无偏差:禁用检查require-dev包要求。
  • --格式(-f):输出格式:文本(默认)或json

全球的#

全局命令允许您运行其他命令,如安装,去除,要求更新就像你从组合器_主页目录。

这只是管理存储在中心位置的项目的助手可以保存您希望随处可用的CLI工具或Composer插件。

这可用于全局安装CLI实用程序。下面是一个示例:

php composer.phar global需要friendsofphp/php-cs-fixer

现在php-cs滤波器二进制文件是全局可用的。确保您的全球供应商二进制文件目录在您的$路径环境变量,可以使用以下命令获取其位置:

php composer.phar全局配置bin-dir--绝对值

如果希望稍后更新二进制文件,可以运行全局更新:

php composer.phar全局更新

search命令允许您搜索当前项目的包存储库。通常这是包装主义者。你把你想要的条件传递给它搜索。

php-composer.phar搜索独白

您还可以通过传递多个参数来搜索多个术语。

选项

  • --仅名称(-N):仅在包名称中搜索。
  • --唯一供应商(-O):仅搜索供应商/组织名称,仅返回“供应商”因此。
  • --类型(-t):搜索特定的包类型。
  • --格式(-f):允许您在文本(默认)或json输出格式之间进行选择。注意,在json中,只有名称和描述键可以保证存在。其余的(网址,储存库,下载费弗斯)有可用的对于Packagist.org,搜索结果和其他存储库可能会或多或少返回数据。

显示/信息#

要列出所有可用的包,可以使用显示命令。

php作曲家.phar秀

要筛选列表,可以使用通配符传递包掩码。

php composer.phar显示“monolog/*”
monolog/monlog 2.4.0将日志发送到文件、套接字、收件箱、数据库和各种web服务

如果您想查看某个包的详细信息,可以传递该包名称。

php-composer.phar显示独白/独白
名称:monog/monog描述:将日志发送到文件、套接字、收件箱、数据库和各种web服务关键词:日志,日志记录,psr-3版本:*1.27.1类型:库许可证:麻省理工学院许可证(MIT)(OSI批准)https://spdx.org/licenses/MIT.html#licenseText主页:http://github.com/Seldaek/monolog来源:[git]https://github.com/Seldaek/monolog.git904713c5929655dc9b97288b69cfeedad610c9a1距离:[zip]https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1904713c5929655dc9b97288b69cfeedad610c9a1名称:monolog/monog、psr/log-implementation支持问题:https://github.com/Seldaek/monolog/issues来源:https://github.com/Seldaek/monog/tree/1.27.1自动加载psr-4型Monolog\=>src/Monolog要求php>=5.3.0psr/log~1.0

您甚至可以传递包版本,它会告诉您该版本的详细信息特定版本。

php-composer.phar显示monlog/monlog 1.0.2

选项

  • --全部:列出所有存储库中可用的所有软件包。
  • --已安装(-i):列出已安装的包(默认情况下启用,但已弃用)。
  • --锁定:列出来自composer.lock的锁定包。
  • --平台(-p):仅列出平台包(php和扩展)。
  • --可用(-a):仅列出可用的程序包。
  • --自身(-s):列出根包信息。
  • --仅名称(-N):仅列出包名称。
  • --路径(-P):列出包路径。
  • --树(-t):将依赖项列为树。如果您传递一个包名称,它将显示该包的依赖关系树。
  • --最新(-l):列出所有已安装的软件包,包括其最新版本。
  • --过期(-o):暗示--最新,但此列表只有有更新版本可用的包。
  • --忽略:忽略指定的包。可以包含通配符(*). 如果您不想被告知某些包的新版本,请将其与--dated选项一起使用
  • --无偏差:从包列表中筛选开发依赖项。
  • --仅限少校(-M):与--latest或--dated一起使用。仅显示具有与SemVer兼容的主要更新的包。
  • --仅限minor(-m):与--latest或--dated一起使用。仅显示具有次要SemVer-compatible更新的包。
  • --只打补丁:与--latest或--dated一起使用。仅显示具有补丁级SemVer-compatible更新的包。
  • --按年龄排序(-A):显示已安装版本的使用期限,并首先对最旧的包进行排序。与--latest或--dated选项一起使用。
  • --直接(-D):将程序包列表限制为您的直接依赖项。
  • --严格要求:当存在过期的包时,返回非零退出代码。
  • --格式(-f):允许您在文本(默认)或json输出格式之间进行选择。
  • --ignore-platform-要求:忽略所有平台要求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器这样做不能实现这些。与--dated选项一起使用。
  • --忽略平台请求:忽略特定的平台要求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器无法实现。可以通过通配符忽略多个要求。与一起使用--过时选项。

过时的#

这个过时的命令显示具有可用更新的已安装包的列表,包括其当前和最新版本。这基本上是的别名作曲家表演-lo.

颜色编码如下:

  • 绿色(=):依赖项是最新版本,并且是最新的。
  • 黄色(~):依赖项有一个新版本可用,根据semver,该版本包含向后兼容性中断,因此当你可以,但可能需要工作。
  • 红色(!):依赖项具有semver-compatible的新版本,您应该对其进行升级。

选项

  • --所有(-a):显示所有包,而不仅仅是过时的包(别名作曲家表演--最新).
  • --直接(-D):将包列表限制为您的直接依赖项。
  • --严格:如果任何包过期,则返回非零退出代码。
  • --忽略:忽略指定的包。可以包含通配符(*). 如果您不想被告知某些软件包的新版本,请使用它
  • --主要(-M):仅显示具有与SemVer兼容的主要更新的包。
  • --仅限minor(-m):仅显示具有次要SemVer-compatible更新的包。
  • --只打补丁(-p):仅显示具有补丁级SemVer-compatible更新的包。
  • --按年龄排序(-A):显示已安装版本的使用年限,并首先对最旧的程序包进行排序。
  • --格式(-f):允许您在文本(默认)或json输出格式之间进行选择。
  • --无偏差:不要显示过时的开发依赖项。
  • --锁定:显示锁定文件中的包更新,而不管供应商目录中当前有什么。
  • --ignore-platform-要求:忽略所有平台要求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器这样做不能实现这些。
  • --ignore-platform-req:忽略特定的平台要求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器无法实现。可以通过通配符忽略多个要求。

浏览/主页#

这个浏览(别名为)打开包的存储库URL或主页在浏览器中。

选项

  • --主页(-H):打开主页而不是存储库URL。
  • --节目(-s):仅显示主页或存储库URL。

建议#

列出当前安装的包集建议的所有包。你可以可以选择以以下格式传递一个或多个包名称供应商/包装将输出限制为仅由这些包提供的建议。

使用--分装,分装(默认)或--通过建议将输出分组的标志分别提供建议或建议的包。

如果只需要建议的包名称列表,请使用--列表.

选项

  • --按包装:通过建议包对输出进行分组(默认)。
  • --通过建议:按建议的包对输出进行分组。
  • --全部:显示所有依赖项的建议,包括可传递的建议(按默认情况下,只显示直接依赖项的建议)。
  • --列表:仅显示建议的程序包名称列表。
  • --无偏差:排除建议require-dev要求包装。

基金#

了解如何为您的依赖关系的维护提供资金。此列表来自已安装依赖项的所有资金链接。使用--格式=json获取机器可读的输出。

选项

  • --格式(-f):允许您在文本(默认)或json输出格式之间进行选择。

取决于/为什么#

这个取决于命令告诉您哪些其他包依赖于某个包裹。与安装一样require-dev要求只考虑关系用于根包。

php composer.phar依赖于条令/lexer
条令/注释1.13.3要求条令/词法(1.*)条令/通用2.13.3要求条令/词汇(^1.0)

您可以选择在包之后指定版本约束以限制搜索。

添加--树-t吨标记以显示包的递归树取决于,例如:

php-composer.phar依赖于psr/log-t
psr/log 1.1.4日志库的通用接口├──composer/composer 2.4.x-dev(需要psr/log^1.0||^2.0||^3.0)├──composer/composer dev-main(需要psr/log^1.0||^2.0||^3.0)⑪——composer/xdebughandler 3.0.3(需要psr/log^1||^2||^3)│  ├──composer/composer 2.4.x-dev(需要composer/xdebug-handler^2.0.2||^3.0.3)│  └──composer/composer dev-main(需要composer/xdebughandler ^2.0.2||^3.0.3)└──symfony/console v5.4.11(冲突psr/log>=3)(循环依赖在此处中止)

选项

  • --递归(-r):递归解析到根包。
  • --树(-t):将结果打印为嵌套树,表示-r。

禁止/为什么不#

这个禁止命令告诉您哪些包正在阻止给定的包无法安装。指定版本约束以验证是否升级可以在项目中执行,如果不能,为什么不能。请参见以下内容例子:

php composer.phar禁止symfony/symfony 3.1
laravel/framework v5.2.16需要symfony/var-dumper(2.8.*|3.0.*)

请注意,您还可以指定平台要求,例如检查是否可以将服务器升级到PHP 8.0:

php composer.phar禁止php 8
条令/缓存v1.6.0需要php(~5.5|~7.0)条令/通用v2.6.1需要php(~5.5|~7.0)条令/实例化器1.0.5需要php(>=5.3,<8.0-DEV)

与相同取决于您可以请求递归查找,它将列出所有包依赖于导致冲突的包。

选项

  • --递归(-r):递归解析到根包。
  • --树(-t):将结果打印为嵌套树,表示-r。

验证#

您应该始终运行验证在提交您的作曲家.json文件,并在标记发布之前。它将检查您的作曲家.json有效。

php composer.phar验证

选项

  • --无需检查:如果中有要求,则不要发出警告作曲家.json使用未绑定或过于严格的版本约束。
  • --无颈锁:如果出现以下情况,则不发出错误作曲家.lock存在并且不是最新的。
  • --无链接发布:如果出现以下情况,则不发出错误作曲家.json不适合在Packagist上作为包发布,但在其他方面是有效的。
  • --具有相关性:还要验证所有已安装依赖项的composer.json。
  • --严格要求:返回警告和错误的非零退出代码。

地位#

如果您经常需要修改依赖项的代码从源安装地位命令允许您检查是否其中任何一个的局部变化。

php composer.phar状态

使用--冗长的选项您可以获得有关改变:

php composer.phar状态-v
您对以下依赖项进行了更改:供应商/seld/jsonlint:M README.mdown(M自述.mdown)

自我更新/自我更新#

要将Composer本身更新到最新版本,请运行自我更新命令。它将取代您的作曲家.phar使用最新版本。

php-composer.phar自我更新

如果要更新到特定版本,请指定:

php composer.phar自我更新2.4.0-RC1

如果您已经为整个系统安装了Composer(请参见全球安装),您可能需要使用运行命令特权

sudo-H作曲家自我更新

如果Composer未作为PHAR安装,则此命令不可用。(当Composer由操作系统包管理器安装时,有时会出现这种情况。)

选项

  • --回滚(-r):回滚到上次安装的版本。
  • --清理备份:更新期间删除旧备份。这使得当前版本的Composer是更新后唯一可用的备份。
  • --无进展:不输出下载进度。
  • --更新密钥:提示用户进行密钥更新。
  • --稳定:强制更新稳定通道。
  • --预览:强制更新预览频道。
  • --快照:强制更新快照通道。
  • --1:强制更新稳定通道,但仅使用1.x版本
  • --2:强制更新稳定通道,但只能使用2.x版本
  • --仅设置频道:仅将频道存储为默认频道,然后退出

配置#

这个配置命令允许您编辑Composer配置设置和存储库在本地作曲家.json文件或全局配置.json文件。

此外,它还允许您编辑本地作曲家.json.

php composer.phar配置--列表

用法#

config[选项][设置键][设置值1]。。。[设置值N]

设置键是配置选项名称,并且设置值1是一个配置值。对于可以采用值数组的设置(例如github协议),允许使用多个设置值参数。

您还可以编辑以下属性的值:

描述,主页,关键字,许可证,最小稳定性,名称,更稳定,类型版本.

请参阅配置第章了解有效的配置选项。

选项

  • --全局(-g):对位于的全局配置文件进行操作$COMPOSER_HOME/config.json默认情况下。如果没有此选项,此命令影响本地composer.json文件或指定的文件--文件.
  • --编辑器(-e):在文本编辑器中使用以下命令打开本地composer.json文件:由定义编辑env变量。使用--全球选项,这将打开全局配置文件。
  • --身份验证(-a):影响身份验证配置文件(仅用于--editor)。
  • --未设置:删除由命名的配置元素设置键.
  • --列表(-l):显示当前配置变量的列表。使用--全球选项仅列出全局配置。
  • --文件=“…”(-f):操作特定文件而不是composer.json。注释不能与--全球选项。
  • --绝对值:获取时返回绝对路径*-目录配置值而不是相对的。
  • --json格式:JSON解码设置值,用于额外的*钥匙。
  • --合并:将设置值与当前值合并,以便与一起使用额外的*组合键--杰森.
  • --追加:添加存储库时,将其附加到现有存储库中(最低优先级),而不是在其前面添加(最高优先级)。
  • --来源:显示从何处加载配置值。

修改存储库#

除了修改配置部分之外配置命令还支持生成通过以下方式更改存储库部分:

php composer.phar配置存储库.foo vcshttps://github.com/foo/bar

如果存储库需要更多配置选项,则可以传递其JSON表示:

php-composer.phar-config-repositories.foo'{“类型”:“vcs”,“url”:“http://svn.example.org/my项目/“,”trunk-pash“:”master“}'

修改附加值#

除了修改配置部分之外配置命令还支持生成通过以下方式使用它来更改额外部分:

php composer.phar配置extra.foo.bar值

圆点表示数组嵌套,但允许最大深度为3层。以上内容将设置“额外”:{“foo”:{-“bar”:“value”}}.

如果要添加/修改复杂值,可以使用--杰森--合并旗帜要将额外字段编辑为json,请执行以下操作:

php composer.phar配置--json extra.foo.bar'{“baz”:true,“qux”:[]}'

创建项目#

您可以使用Composer从现有包创建新项目。这是相当于先执行git克隆/svn签出,然后执行composer安装供应商数量。

这方面有几个应用:

  1. 您可以部署应用程序包。
  2. 例如,您可以查看任何包并开始开发补丁。
  3. 具有多个开发人员的项目可以使用此功能引导用于开发的初始应用程序。

要使用Composer创建新项目,可以使用创建项目命令。向它传递包名称和创建项目的目录提供一个版本作为第三个参数,否则使用最新版本。

如果目录当前不存在,则将在安装过程中创建该目录。

php composer.phar创建项目原则/orm路径“2.2.*”

也可以在带有现有的作曲家.json文件以引导项目。

默认情况下,该命令检查packagist.org上的包。

选项

  • --稳定性(-s):包装的最小稳定性。默认为稳定的.
  • --首选安装:下载软件包有两种方式:来源距离.Composer使用距离默认情况下。如果你通过--prefer-install=源(或--首选来源)Composer将从安装来源如果有。如果您想对项目并直接获取依赖项的本地git克隆。获取Composer使用的遗留行为来源自动用于开发包的版本,使用--prefer-install=自动。另请参阅安装配置首选.传递此标志将覆盖配置值。
  • --存储库:提供自定义存储库以搜索包,它将被用来代替包装学家。可以是HTTP URL指向作曲家存储库,指向本地的路径packages.json包文件,或JSON字符串,类似于存储库键接受。您可以多次使用此选项来配置多个存储库。
  • --add-repository(添加-存储):在composer.json中添加自定义存储库。如果一把锁文件存在时,它将被删除,并将运行更新而不是安装。
  • --开发:安装中列出的软件包require-dev要求.
  • --无偏差:禁用require-dev包的安装。
  • --无脚本:禁止执行根目录中定义的脚本包裹。
  • --无利润:删除可能会干扰某些内容的进度显示不处理退格字符的终端或脚本。
  • --无安全http:在以下情况下暂时禁用secure-http配置选项安装根包。使用时风险自负。使用此标志不好想法。
  • --保留风险投资:跳过删除已创建的VCS元数据项目。如果在非交互式模式下运行命令,这将非常有用模式。
  • --删除vcs:在不提示的情况下强制删除VCS元数据。
  • --无安装:禁用供应商的安装。
  • --无审计:安装完成后不运行审核步骤。另请参见编剧_审核.
  • --听觉形态:审核输出格式。必须是“table”、“plain”、“json”或“summary”(默认)。
  • --ignore-platform-要求:忽略所有平台要求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)并强制安装,即使本地机器这样做不能实现这些。另请参见平台config选项。
  • --ignore-platform-req:忽略特定的平台要求(php(电话),hhvm(小时虚拟机),自由-*扩展名-*)并强制安装,即使本地机器无法实现。可以通过通配符忽略多个要求。
  • --问:要求用户提供新项目的目标目录。

dump-autoload/dumpautoload#

如果由于类映射中的新类而需要更新自动加载器例如,您可以使用转储-自动加载不必这么做进行安装或更新。

此外,它可以转储一个优化的自动加载器,用于转换PSR-0/4包出于性能原因,将类映射转换为类映射。在具有许多类,自动加载器可以占用每个请求的很大一部分时间。将类映射用于所有内容在开发中不太方便,但是使用此选项,为了方便起见,您仍然可以使用PSR-0/4性能。

选项

  • --优化(-o):将PSR-0/4自动加载转换为classmap以获得更快的自动加载器。特别推荐用于生产,但可能需要还有一点时间运行,因此目前默认情况下没有完成。
  • --类映射授权(-a):仅从类映射自动加载类。隐式启用--优化.
  • --apcu公司:使用APCu缓存找到的/非找到的类。
  • --apcu-prefix:为APCu自动加载器缓存使用自定义前缀。隐式启用--自动功率控制单元.
  • --无偏差:禁用autoload-dev规则。默认情况下,作曲家将推断出根据上次自动安装更新 --无偏差州。
  • --开发:启用autoload-dev规则。默认情况下,作曲家将推断出根据上次自动安装更新 --无偏差州。
  • --ignore-platform-要求:全部忽略php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*并跳过平台检查对于这些。另请参见平台config选项。
  • --忽略平台请求:忽略特定的平台要求(php(电话),hhvm(小时虚拟机),图书馆-*扩展名-*)跳过平台检查因为它。可以通过通配符忽略多个需求。
  • --严格psr:如果PSR-4或PSR-0映射错误,则返回失败的退出代码(1)存在。需要优化才能工作。

清除缓存/清除缓存/cc#

从Composer的缓存目录中删除所有内容。

选项

  • --气相色谱法:只运行垃圾收集,而不是完全清除缓存

许可证#

列出安装的每个软件包的名称、版本和许可证。使用--格式=json以获得机器可读的输出。

选项

  • --格式:输出格式:text、json或summary(默认值:“text”)
  • --无偏差:从输出中删除开发依赖项

运行脚本/运行#

选项

  • --超时:以秒为单位设置脚本超时,如果没有超时则设置为0。
  • --开发:设置开发模式。
  • --无偏差:禁用开发模式。
  • --列表(-l):列出用户定义的脚本。

要运行脚本您可以手动使用此命令,为其提供脚本名称和可选的任何必需参数。

执行官#

执行供应商提供的二进制/脚本。您可以执行任何命令,这将确保在命令之前将Composer bin-dir推送到PATH上跑步。

选项

  • --列表(-l):列出可用的Composer二进制文件。

诊断#

如果你认为你发现了一个错误,或者有什么东西表现异常,你可能会想要运行诊断命令执行许多常见的自动检查问题。

php composer.phar诊断

档案文件#

此命令用于为给定版本。它还可以用于存档整个项目,而无需排除/忽略的文件。

php composer.phar归档供应商/包2.0.21--format=zip

选项

  • --格式(-f):结果存档的格式:tar、tar.gz、tar.bz2或zip(默认为“tar”)。
  • --目录:将存档写入此目录(默认值:“.”)
  • --文件:使用给定的文件名写入存档。

审计#

此命令用于审核已安装的包可能存在的安全问题。它检查和根据Packagist.org api.

audit命令返回发现的漏洞数量。0如果成功,直至255否则。

php composer.phar审计

选项

  • --无偏差:禁用require-dev包的审核。
  • --格式(-f):审核输出格式。必须是“table”(默认)、“plain”、“json”或“summary”。
  • --锁定:无论供应商目录中当前有什么内容,都要审核锁文件中的包。

帮助#

要获取有关某个命令的更多信息,可以使用帮助.

php composer.phar帮助安装

命令行完成#

可以通过以下说明启用命令行完成在本页上.

环境变量#

您可以设置多个覆盖特定设置的环境变量。建议尽可能在配置第节,共节作曲家.json而不是。值得注意的是,环境变量将始终优先于中指定的值作曲家.json.

作曲家#

通过设置作曲家可以设置文件名作曲家.json去做别的事情。

例如:

COMPOSER=COMPOSER-other.json php COMPOSER.phar安装

生成的锁定文件将使用相同的名称:作曲家-其他.锁定在本例中。

复合器_ALLOW_SUPERUSER#

如果设置为1,此env将禁用有关以root/super用户身份运行命令的警告。它还禁用了自动清除sudo会话,因此您应该只设置如果您在任何时候都像在docker容器中一样将Composer用作超级用户。

复合器_低_XDEBUG#

如果设置为1,则此env允许在启用Xdebug扩展时运行Composer,而无需重新启动PHP。

复合器_ UTH#

这个组合身份验证var允许您将身份验证设置为环境变量。变量的内容应该是JSON格式的对象,包含http-basic,github-oauth、bitbucket-oauth。。。根据需要创建对象,并遵循配置中的规范.

复合器BIN_DIR#

通过设置此选项,您可以更改箱子(供应商二进制文件)目录到除供应商/箱子.

组合器_ ACHE_DIR#

这个组合器_ ACHE_DIRvar允许您更改Composer缓存目录,也可以通过缓存dir选项。

默认情况下,它指向C: \Users\<user>\AppData\Local\Composer(或%LOCALAPPDATA%/编写器)在Windows上。在遵循XDG底座目录规范,它指向$XDG_CACHE_HOME/作曲家。在其他*nix系统和macOS上,它指向$COMPOSER_HOME/缓存.

组合器_文件#

通过设置此环境值,您可以设置证书捆绑包的路径SSL/TLS对等验证期间使用的文件。

组合器_禁用_XDEBUG_WARN#

如果设置为1,则当Composer在启用Xdebug扩展的情况下运行时,此env将禁止发出警告。

组合器_分类_更改#

此env var控制放弃更改config选项。

组合器_查找#

如果设置为0,此环境将在安装时禁止资金通知。

组合器_主页#

这个堆肥器_家var允许您更改Composer主目录。这个是一个隐藏的全局(机器上的per-user)目录,在所有项目。

使用作曲家配置--全局主页以查看主目录的位置。

默认情况下,它指向C: \Users\<用户>\AppData\Roaming\Composer在Windows上/用户/<user>/.composer在macOS上。在遵循XDG底座目录规范,它指向$XDG_CONFIG_HOME/作曲家。在其他*nix系统上,它指向/主页/<user>/.composer.

COMPOSER_HOME/config.json(复合器_主页/配置.json)#

你可以放一个配置.json文件保存到以下位置组合器_主页到。Composer将部分(仅配置存储库键)合并此使用项目的配置作曲家.json当您运行安装更新命令。

此文件允许您设置存储库配置用于用户的项目。

如果全局配置匹配地方的配置地方的项目中的配置作曲家.json总是赢。

复合器_ TACCESS_保护#

默认为1。如果设置为0,作曲家不会创建.ht访问中的文件编写器主目录、缓存目录和数据目录。

组合内存限制#

如果设置,该值将用作php的memory_limit。

复合器_内部_路径_ EPOS#

如果设置为1,此env将默认路径存储库策略更改为镜子相反属于符号链接。由于它是设置的默认策略,它仍然可以被覆盖存储库选项。

复合器_NO_交互#

如果设置为1,则此env变量将使Composer的行为与传递--无交互作用标记每个命令。这可以在构建框/CI上设置。

堆肥处理超时#

这个env变量控制Composer等待命令(例如git)的时间命令)以完成执行。默认值为300秒(5分钟)。

编辑器_ OOT_VERSION#

通过设置这个var,您可以指定根包的版本,如果无法从VCS信息中猜测,并且不存在于作曲家.json.

编辑者_发送者_DIR#

通过设置这个var,您可以让Composer将依赖项安装到目录以外的小贩.

组合器_运行时间_ NV#

这让您可以提示Composer在哪个环境下运行,这可以帮助Composer解决一些特定于环境的问题。当前支持的唯一值是虚拟盒子,从而实现一些短期睡眠()调用以等待文件系统在我们尝试读取文件之前正确地写入文件。您可以设置如果您使用Vagrant或VirtualBox,并且遇到文件问题在安装过程中发现,即使它们应该存在。

http_proxy或http_proxy#

如果您在HTTP代理后面使用Composer,可以使用标准http_代理HTTP_代理环境变量。将其设置为代理的URL。许多操作系统已经为您设置了此变量。

使用http_代理(小写)或甚至定义两者可能更可取,因为一些工具(如git或curl)只使用小写http_代理版本。或者,也可以使用以下命令定义git代理git配置--全局http.proxy<proxy url>.

如果您在非CLI上下文中使用Composer(即集成到CMS或类似用例),并且需要支持代理,请提供CGI_HTTP_代理而不是环境变量。请参见httpoxy.org网站进一步了解细节。

组合器_自定义_禁止#

设置为忽视,报告失败要覆盖审计被禁止config选项。

复合器_MAX_PARALLEL_HTTP#

设置为整数可配置可并行下载的文件数。这个默认值为12,并且必须介于1和50之间。如果您的代理有问题并发性也许你想降低这一点。通常不会导致增加在性能提升方面。

复合器_预溶解#

设置为46强制IPv4或IPv6 DNS解析。只有在curl扩展用于下载。

HTTP_PROXY_REQUEST_FULLURI(HTTP_PROXY_REQUEST_FULLURI)#

如果使用代理,但它不支持request_fulluri标志,那么应该将这个env变量设置为0以防止Composer设置request_fulluri选项。

HTTPS_PROXY_REQUEST_FULLURI公司#

如果使用代理,但它不支持HTTPS的request_fulluri标志请求,则应将此env var设置为0阻止Composer通过设置requestfulluri选项。

组合器_SELF_UPDATE_TARGET#

如果设置,则使self-update命令将新的Composer phar文件写入该路径,而不是覆盖自身。用于更新只读文件系统上的Composer。

无代理或无代理#

如果您支持代理并希望对某些域禁用它可以使用无代理(_P)否_代理env var。将其设置为以逗号分隔的列表代理应包含的域用于。

env-var接受CIDR中的域、IP地址和IP地址块符号。您可以将过滤器限制在特定端口(例如。:80). 也可以将其设置为*忽略所有HTTP请求的代理。

组合_禁用_网络#

如果设置为1,禁用网络访问(尽最大努力)。这可以用于调试或在连接不良的飞机或星际飞船上运行Composer。

如果设置为首要的,GitHub VCS存储库将启动缓存,以便可以使用完全脱机1.

复合器_DEBUG_EVENTS#

如果设置为1,输出有关正在调度的事件的信息,可以是对于插件作者确定确切的触发时间非常有用。

编剧_审核#

如果设置为1,它相当于通过--不审计选择要求,更新,去除创建项目命令。

组合器_无DEV#

如果设置为1,它相当于通过--更新-非开发选择要求或者--无偏差选择安装更新。您可以为单个通过设置命令复合器_NO_DEV=0.

组合器_参考_表#

如果设置为1,它相当于通过--更稳定选择更新要求.

组合器_参考_下降#

如果设置为1,它相当于通过--偏好最低选择更新要求.

组合器_最小_更改#

如果设置为1,它相当于通过--最小变化选择更新,要求去除.

COMPOSER_IGNORE_PLATFORM_REQ或COMPOSER_IGNORE_PLATFORM_REQS#

如果复合器_ GNORE_平台_REQS设置为1,它相当于通过--忽略格式要求参数。否则,在中指定逗号分隔的列表编译器_ GNORE_平台_REQ将忽略这些特定要求。

例如,如果开发工作站永远不会运行数据库查询,则可以使用此选项忽略数据库扩展可用的要求。如果你设置COMPOSER_IGNORE_PLATFORM_REQ=外部oci8,则composer将允许安装包,即使oci8公司未启用PHP扩展。

图书馆|架构

发现打字错误了吗?此文档中有问题吗?分叉和编辑它!