Composer

Version: 2.9.8 darwin linux windows

Composer is not a package manager in the same sense as Yum or Apt are. Yes, it deals with “packages” or libraries, but it manages them on a per-project basis, installing them in a directory (e.g. vendor) inside your project. By default, it does not install anything globally. Thus, it is a dependency manager. It does however support a “global” project for convenience via the global command.

This idea is not new and Composer is strongly inspired by node’s npm and ruby’s bundler.

Suppose:

Composer:

Installation Instructions

Linux
Depends on: php

Download Composer
{
  "url": "{{ .SVar `.tool.composer.download.url` }}",
  "destination_folder": "{{ .PDownloads }}",
  "output_filename": "{{ .SVar `.tool.composer.download.filename` }}",
  "overwrite": false
}
Copy download to tool space
{
  "source": "{{ .PDownloads }}/{{ .SVar `.tool.composer.download.filename` }}",
  "destination": "{{ .PTools }}/composer/{{ .SVar `.tool.composer.download.version` }}/composer"
}
Make program executable
{
  "path": "{{ .PTools }}/composer/{{ .SVar `.tool.composer.download.version` }}/composer",
  "permission_bits": 504
}

MacOS
Depends on: php

Download Composer
{
  "url": "{{ .SVar `.tool.composer.download.url` }}",
  "destination_folder": "{{ .PDownloads }}",
  "output_filename": "{{ .SVar `.tool.composer.download.filename` }}",
  "overwrite": false
}
Copy download to tool space
{
  "source": "{{ .PDownloads }}/{{ .SVar `.tool.composer.download.filename` }}",
  "destination": "{{ .PTools }}/composer/{{ .SVar `.tool.composer.download.version` }}/composer"
}
Make program executable
{
  "path": "{{ .PTools }}/composer/{{ .SVar `.tool.composer.download.version` }}/composer",
  "permission_bits": 504
}

Binaries