community.general.composer module – Dependency Manager for PHP
Note
This module is part of the community.general collection (version 8.6.4).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
You need further requirements to be able to use this module,
see Requirements for details.
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.
Aliases: packaging.language.composer
Requirements
The below requirements are needed on the host that executes this module.
php
composer installed in bin path (recommended /usr/local/bin) or specified in
composer_executable
Parameters
Parameter |
Comments |
---|---|
Uses APCu to cache found/not-found classes Choices:
|
|
Composer arguments like required package, version and so on. Default: |
|
Autoload classes from classmap only. Implicitly enable optimize_autoloader. Recommended especially for production, but can take a bit of time to run. Choices:
|
|
Composer command like “install”, “update” and so on. Default: |
|
Path to composer executable on the remote host, if composer is not in |
|
Path to PHP Executable on the remote host, if PHP is not in PATH. |
|
Runs the specified command globally. Choices:
|
|
Ignore php, hhvm, lib-* and ext-* requirements and force the installation even if the local machine does not fulfill these. Choices:
|
|
Disables installation of require-dev packages (see –no-dev). Choices:
|
|
Disables all plugins (see –no-plugins). Choices:
|
|
Skips the execution of all scripts defined in composer.json (see –no-scripts). Choices:
|
|
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. Choices:
|
|
Forces installation from package dist even for dev versions (see –prefer-dist). Choices:
|
|
Forces installation from package sources when possible (see –prefer-source). Choices:
|
|
Directory of your project (see –working-dir). This is required when the command is not run globally. Will be ignored if |
Attributes
Attribute |
Support |
Description |
---|---|---|
Support: full |
Can run in |
|
Support: none |
Will return details on what has changed (or possibly needs changing in |
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: true
- name: Install a package globally
community.general.composer:
command: require
global_command: true
arguments: my/package