community.general.composer – Dependency Manager for PHP

From Get docs
Ansible/docs/2.11/collections/community/general/composer module


community.general.composer – Dependency Manager for PHP

Note

This plugin is part of the community.general collection (version 2.0.1).

To install it use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.composer.


Synopsis

  • Composer is a tool for dependency management in PHP. It allows you to declare the dependent libraries your project needs and it will install them in your project for you.

Requirements

The below requirements are needed on the host that executes this module.

  • php
  • composer installed in bin path (recommended /usr/local/bin)

Parameters

Parameter Choices/Defaults Comments

apcu_autoloader

boolean

  • no

  • yes

Uses APCu to cache found/not-found classes


aliases: apcu-autoloader

arguments

string

Composer arguments like required package, version and so on.

classmap_authoritative

boolean

  • no

  • yes

Autoload classes from classmap only.

Implicitely enable optimize_autoloader.

Recommended especially for production, but can take a bit of time to run.


aliases: classmap-authoritative

command

string

Default:

"install"

Composer command like "install", "update" and so on.

executable

path

Path to PHP Executable on the remote host, if PHP is not in PATH.


aliases: php_path

global_command

boolean

  • no

  • yes

Runs the specified command globally.


aliases: global-command

ignore_platform_reqs

boolean

  • no

  • yes

Ignore php, hhvm, lib-* and ext-* requirements and force the installation even if the local machine does not fulfill these.


aliases: ignore-platform-reqs

no_dev

boolean

  • no
  • yes

Disables installation of require-dev packages (see --no-dev).


aliases: no-dev

no_plugins

boolean

  • no

  • yes

Disables all plugins ( see --no-plugins ).


aliases: no-plugins

no_scripts

boolean

  • no

  • yes

Skips the execution of all scripts defined in composer.json (see --no-scripts).


aliases: no-scripts

optimize_autoloader

boolean

  • no
  • yes

Optimize autoloader during autoloader dump (see --optimize-autoloader).

Convert PSR-0/4 autoloading to classmap to get a faster autoloader.

Recommended especially for production, but can take a bit of time to run.


aliases: optimize-autoloader

prefer_dist

boolean

  • no

  • yes

Forces installation from package dist even for dev versions (see --prefer-dist).


aliases: prefer-dist

prefer_source

boolean

  • no

  • yes

Forces installation from package sources when possible (see --prefer-source).


aliases: prefer-source

working_dir

path

Directory of your project (see --working-dir). This is required when the command is not run globally.

Will be ignored if global_command=true.


aliases: working-dir



Notes

Note

  • Default options that are always appended in each execution are –no-ansi, –no-interaction and –no-progress if available.
  • We received reports about issues on macOS if composer was installed by Homebrew. Please use the official install method to avoid issues.


Examples

- 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: yes

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

Authors

  • Dimitrios Tydeas Mengidis (@dmtrs)
  • René Moser (@resmo)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/composer_module.html