Skip to content

Latest commit

 

History

History
192 lines (149 loc) · 6.43 KB

README.rst

File metadata and controls

192 lines (149 loc) · 6.43 KB

PHP composer chef recipe

Author: Michael Klapper <[email protected]>
Description:Chef recipe to manage/install composer packages
Homepage:http://www.morphodo.com
Tags:PHP, Composer

This way composer is installed under /opt/composer, the binary is symlinked into /usr/local/bin.

include_recipe "composer"

This lightweight resource provider has the following actions:

Action Description
:install Installs the composer and is the default action
:update Update existing composer installation
:remove Remove composer if the binary is installed in current working directory

This lightweight resource provider has the following attributes:

Attribute Description
:target_dir The path where the composer should be installed to
:global_bin_dir Target directory to link the binary to; Default is set to /usr/local/bin
:global Enable the global installation; Default is set to true
:owner The owner name or group ID that should be changed before running a command. Default value: root.
:group The group name or group ID that should be changed before running a command. Default value: admin.
:source Repository location; Default value: https://getcomposer.org/composer.phar

To install composer locally for just a project you can use the LWRP as below.

composer "/var/www/domain/htdocs" do
  global false
  action :install
end

This command will download composer to the htdocs directory /var/www/domain/htdocs/composer.phar.

Just pass the path to the composer installation to the LWRP and call the update action.

composer "/var/www/domain/htdocs" do
  action :update
end

Manage composer packages from Packagist with existing composer.json configuration file

From existing /var/www/domain/htdocs/composer.json file with option --dev set.

composer_package "/var/www/domain/htdocs" do
  action :install
  dev true
end

This will update all configured packages from composer.json.

composer_package "/var/www/domain/htdocs" do
  action :update
end

You can use Composer to create new projects from an existing package. This is the equivalent of doing a git clone/svn checkout followed by a composer install of the vendors.

The directory is not allowed to exist, it will be created during installation.

composer_package "typo3/neos-base-distribution" do
  action :create_project
  install_path "/var/www/neos
end

You can simply use the create action to build a new composer.json file from template and define which packages you would like to install.

composer_package "Install PHP tools for development" do
  action [:create, :update]
  install_path "/opt/composer-libaries"
  packages ({"phpunit/phpunit" => "3.7.*", "phing/phing" => "2.4.*"})
  config ({"bin-dir" => "/usr/local/bin"})
end

If you need to update the autoloader because of new classes in a classmap package for example, you can use "dump-autoload" to do that without having to go through an install or update.

Additionally, it can dump an optimized autoloader that converts PSR-0 packages into classmap ones for performance reasons. In large applications with many classes, the autoloader can take up a substantial portion of every request's time. Using classmaps for everything is less convenient in development, but using this option you can still use PSR-0 for convenience and classmaps for performance.

composer_package "/opt/composer-libaries" do
  action :dump_autoload
  optimize true
end
  • This cookbook is used to manage the PHP development dependencies easily for PylonWorks.Essencebase sandbox environment.
  • The cookbook is used as dependency of TYPO3-Flow recipe to install TYPO3 Flow easily with chef.

For detailed usage instructions visit https://github.com/applicationsonline/librarian and folow the README.md.

site 'http://community.opscode.com/api/v1'

cookbook "composer",
  :git => "git://github.com/Morphodo/chef-composer.git"

The knife-github-cookbooks gem is a plugin for knife that supports installing cookbooks directly from a GitHub repository. To install with the plugin:

gem install knife-github-cookbooks
cd chef-repo
knife cookbook github install Morphodo/chef-composer/0.1.0

A common practice (which is getting dated) is to add cookbooks as Git submodules. This is accomplishes like so:

cd chef-repo
git submodule add git://github.com/Morphodo/chef-composer.git cookbooks/composer
git submodule init && git submodule update

Just go into your cookbooks directory and clone this repository.

git clone git://github.com/Morphodo/chef-composer.git composer

If the cookbook needs to downloaded temporarily just to be uploaded to a Chef Server or Opscode Hosted Chef, then a tarball installation might fit the bill:

If you are looking for App Entwicklung you can visit Morphodo and get in touch.

cd chef-repo/cookbooks
curl -Ls https://github.com/Morphodo/chef-composer/0.1.0 | tar xfz - && \
  mv Morphodo-chef-composer-* composer