On this page
community.general.composer – Dependency Manager for PHP
Note
This plugin is part of the community.general collection (version 3.8.1).
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
.
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) or specified in composer_executable
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
apcu_autoloader
boolean
|
|
Uses APCu to cache found/not-found classes
Alias
apcu-autoloader has been deprecated and will be removed in community.general 5.0.0.
aliases: apcu-autoloader |
arguments
string
|
Composer arguments like required package, version and so on.
|
|
classmap_authoritative
boolean
|
|
Autoload classes from classmap only.
Implicitely enable optimize_autoloader.
Recommended especially for production, but can take a bit of time to run.
Alias
classmap-authoritative has been deprecated and will be removed in community.general 5.0.0.
aliases: classmap-authoritative |
command
string
|
Default:
"install"
|
Composer command like "install", "update" and so on.
|
composer_executable
path
added in 3.2.0 of community.general
|
Path to composer executable on the remote host, if composer is not in PATH or a custom composer is needed.
|
|
executable
path
|
Path to PHP Executable on the remote host, if PHP is not in PATH.
aliases: php_path |
|
global_command
boolean
|
|
Runs the specified command globally.
Alias
global-command has been deprecated and will be removed in community.general 5.0.0.
aliases: global-command |
ignore_platform_reqs
boolean
|
|
Ignore php, hhvm, lib-* and ext-* requirements and force the installation even if the local machine does not fulfill these.
Alias
ignore-platform-reqs has been deprecated and will be removed in community.general 5.0.0.
aliases: ignore-platform-reqs |
no_dev
boolean
|
|
Disables installation of require-dev packages (see --no-dev).
Alias
no-dev has been deprecated and will be removed in community.general 5.0.0.
aliases: no-dev |
no_plugins
boolean
|
|
Disables all plugins ( see --no-plugins ).
Alias
no-plugins has been deprecated and will be removed in community.general 5.0.0.
aliases: no-plugins |
no_scripts
boolean
|
|
Skips the execution of all scripts defined in composer.json (see --no-scripts).
Alias
no-scripts has been deprecated and will be removed in community.general 5.0.0.
aliases: no-scripts |
optimize_autoloader
boolean
|
|
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.
Alias
optimize-autoloader has been deprecated and will be removed in community.general 5.0.0.
aliases: optimize-autoloader |
prefer_dist
boolean
|
|
Forces installation from package dist even for dev versions (see --prefer-dist).
Alias
prefer-dist has been deprecated and will be removed in community.general 5.0.0.
aliases: prefer-dist |
prefer_source
boolean
|
|
Forces installation from package sources when possible (see --prefer-source).
Alias
prefer-source has been deprecated and will be removed in community.general 5.0.0.
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 .
Alias
working-dir has been deprecated and will be removed in community.general 5.0.0.
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/latest/collections/community/general/composer_module.html