v1.0.5 2015-04-08 13:21 UTC


This project aims to provide a way to use composer from within a script, even if it is not installed.

Build Status

How to install :

You can choose between :
1. clone this repo git clone https://github.com/eviweb/composer-wrapper.git
2. use composer by adding "eviweb/composer-wrapper" : "1.*" to the require section of your composer.json
3. directly download the Wrapper.php
4. dynamic install see below

How to use :

Include the wrapper

First, you need to include the wrapper into your code, according to the previous installation choice :

  1. add require_once 'PATH_TO_COMPOSER_WRAPPER_DIRECTORY/src/evidev/composer/Wrapper.php'; where PATH_TO_COMPOSER_WRAPPER_DIRECTORY is the path to the cloned repository
  2. add require 'vendor/autoload.php'; please refer to the Composer Documentation
  3. add require_once 'PATH_TO_COMPOSER_WRAPPER_FILE'; where PATH_TO_COMPOSER_WRAPPER_FILE is the path to the Wrapper.php file
  4. add
   $wrapper_file = sys_get_temp_dir() . '/Wrapper.php';
   if (!file_exists($wrapper_file)) {
   require_once $wrapper_file;    

Use the wrapper

  1. for a command line use, simply add exit(\evidev\composer\Wrapper::create()->run()); to your executable script
  2. if you want to use it in the body of your script, and pass specific arguments to the Wrapper::run() method you need to do as the following :
   $wc = \evidev\composer\Wrapper::create();
   $exit_code = $wc->run("COMPOSER_OPTION_OR_COMMAND_AS_STRING");
   // add more code here for example

where COMPOSER_OPTION_OR_COMMAND_AS_STRING is a composer option or command

How it works

The Wrapper downloads the composer.phar file when created.
By default the composer.phar is downloaded in sys_get_temp_dir(), but you can specify a target directory by passing its path as a parameter of Wrapper::create().
If this parameter is an empty string or if the directory does not exist, sys_get_temp_dir() is used as fallback
In case of use of many instances of the Wrapper, created with different directories (which should never happened), the first downloaded composer.phar is used.