composer – Dependency Manager for PHP — Ansible Documentation

- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# composer – Dependency Manager for PHP

- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Status

## 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 added in 2.7 | Choices: no ← yes | Uses APCu to cache found/not-found classes aliases: apcu-autoloader
arguments - |  | Composer arguments like required package, version and so on.
classmap_authoritative boolean added in 2.7 | Choices: 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 - | Default: "install" | Composer command like "install", "update" and so on.
executable - added in 2.4 |  | Path to PHP Executable on the remote host, if PHP is not in PATH. aliases: php_path
global_command boolean added in 2.4 | Choices: no ← yes | Runs the specified command globally. aliases: global-command
ignore_platform_reqs boolean | Choices: 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 | Choices: no yes ← | Disables installation of require-dev packages (see --no-dev). aliases: no-dev
no_plugins boolean | Choices: no ← yes | Disables all plugins ( see --no-plugins ). aliases: no-plugins
no_scripts boolean | Choices: no ← yes | Skips the execution of all scripts defined in composer.json (see --no-scripts). aliases: no-scripts
optimize_autoloader boolean | Choices: 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 | Choices: no ← yes | Forces installation from package dist even for dev versions (see --prefer-dist). aliases: prefer-dist
prefer_source boolean | Choices: no ← yes | Forces installation from package sources when possible (see --prefer-source). aliases: prefer-source
working_dir - |  | 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

    # Downloads and installs all the libs and dependencies outlined in the /path/to/project/composer.lock
    - composer:
        command: install
        working_dir: /path/to/project

    - composer:
        command: require
        arguments: my/package
        working_dir: /path/to/project

    # Clone project and install with all dependencies
    - composer:
        command: create-project
        arguments: package/package /path/to/project ~1.0
        working_dir: /path/to/project
        prefer_dist: yes

    # Installs package globally
    - composer:
        command: require
        global_command: yes
        arguments: my/package

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

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

Hint

If you notice any issues in this documentation, you can edit this document to improve it.