community.general.composer 模块 – PHP 的依赖管理器

注意

此模块是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 playbook 中使用它,请指定:community.general.composer

概要

  • Composer 是 PHP 中的依赖管理工具。它允许您声明项目所需的依赖库,并且它会将它们安装到您的项目中。

要求

执行此模块的主机需要满足以下要求。

  • php

  • composer 安装在 bin 路径(推荐 /usr/local/bin)或在 composer_executable 中指定

参数

参数

注释

apcu_autoloader

布尔值

使用 APCu 缓存找到/未找到的类

选项

  • false ← (默认)

  • true

arguments

字符串

Composer 参数,例如所需包、版本等。

默认值: ""

classmap_authoritative

布尔值

仅从类映射自动加载类。

隐式启用 optimize_autoloader。

特别推荐用于生产环境,但可能需要一些时间才能运行。

选项

  • false ← (默认)

  • true

command

字符串

Composer 命令,如“install”、“update”等。

默认值: "install"

composer_executable

路径

在 community.general 3.2.0 中添加

如果 composer 不在 PATH 中或需要自定义 composer,则远程主机上 composer 可执行文件的路径。

executable

别名:php_path

路径

如果 PHP 不在 PATH 中,则远程主机上 PHP 可执行文件的路径。

global_command

布尔值

全局运行指定的命令。

选项

  • false ← (默认)

  • true

ignore_platform_reqs

布尔值

忽略 php、hhvm、lib-* 和 ext-* 要求,即使本地计算机不满足这些要求,也强制安装。

选项

  • false ← (默认)

  • true

no_dev

布尔值

禁用 require-dev 包的安装(请参阅 –no-dev)。

选项

  • false

  • true ← (默认)

no_plugins

布尔值

禁用所有插件(请参阅 –no-plugins)。

选项

  • false ← (默认)

  • true

no_scripts

布尔值

跳过执行 composer.json 中定义的所有脚本(请参阅 –no-scripts)。

选项

  • false ← (默认)

  • true

optimize_autoloader

布尔值

在自动加载器转储期间优化自动加载器(请参阅 –optimize-autoloader)。

将 PSR-0/4 自动加载转换为类映射以获得更快的自动加载器。

特别推荐用于生产环境,但可能需要一些时间才能运行。

选项

  • false

  • true ← (默认)

prefer_dist

布尔值

强制从软件包 dist 安装,即使对于开发版本也是如此(请参阅 –prefer-dist)。

选项

  • false ← (默认)

  • true

prefer_source

布尔值

尽可能强制从软件包源安装(请参阅 –prefer-source)。

选项

  • false ← (默认)

  • true

working_dir

路径

您的项目目录(请参阅 –working-dir)。当命令不是全局运行时,这是必需的。

如果 global_command=true,则将被忽略。

属性

属性

支持

描述

check_mode

支持: 完整

可以在 check_mode 中运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:

在 diff 模式下,将返回有关已更改的内容(或可能需要在 check_mode 中更改的内容)的详细信息。

备注

注意

  • 每次执行时始终附加的默认选项是 –no-ansi、–no-interaction 和 –no-progress(如果可用)。

  • 我们收到了关于 macOS 上如果 composer 通过 Homebrew 安装会出现问题的报告。请使用官方安装方法以避免问题。

示例

- name: Download and installs all libs and dependencies outlined in the /path/to/project/composer.lock
  community.general.composer:
    command: install
    working_dir: /path/to/project

- name: Install a new package
  community.general.composer:
    command: require
    arguments: my/package
    working_dir: /path/to/project

- name: Clone and install a project with all dependencies
  community.general.composer:
    command: create-project
    arguments: package/package /path/to/project ~1.0
    working_dir: /path/to/project
    prefer_dist: true

- name: Install a package globally
  community.general.composer:
    command: require
    global_command: true
    arguments: my/package

作者

  • Dimitrios Tydeas Mengidis (@dmtrs)

  • René Moser (@resmo)