目次

Composer

https://getcomposer.org/

Install

任意のディレクトリ(プロジェクトのルートなど)に移動してインストーラを実行する。

[root@web01 ~]# cd ProjectRoot
[root@web01 ProjectRoot]# curl -sS https://getcomposer.org/installer | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /root/ProjectRoot/composer.phar
Use it: php composer.phar

実行した場所にcomposer(composer.pharという実行可能ファイル)が作成される。

[root@web01 ProjectRoot]# ls -alt
合計 1164
-rwxr-xr-x  1 root root 1180001 11月 18 13:34 2015 composer.phar
drwxr-xr-x  2 root root    4096 11月 18 13:33 2015 .
dr-xr-x---. 8 root root    4096 11月 18 13:33 2015 ..
[root@web01 ProjectRoot]# php composer.phar -V                                        
Composer version 1.0-dev (30e6a63958652e12d01bd3edbc7c7cd7500dde95) 2015-11-17 15:29:08

How to use

composer install

任意のディレクトリ(プロジェクトのルートなど)にcomposer.jsonを作成して、インストールしたいパッケージなどを定義する

[root@web01 ProjectRoot]# vi composer.json
{
    "require": {
        "phalcon/devtools": "dev-master"
    }
}

composer.jsonのある場所でinstallを実行する。

[root@web01 ProjectRoot]# php composer.phar install                                   
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing phalcon/devtools (dev-master c2e5aff)
    Cloning c2e5aff43aa4fbf919abd13bb7d0ef80efb83f57

Writing lock file
Generating autoload files

installが正常終了すると、インストール時のパッケージ情報・バージョン情報がcomposer.lockに書きだされる。
再度同じ構成を構築したい場合は、このファイルを利用する(同階層に設置する)。

[root@web01 ProjectRoot]# ls -alt
合計 1176
drwxr-xr-x  5 root root    4096 11月 18 13:38 2015 vendor
drwxr-xr-x  3 root root    4096 11月 18 13:38 2015 .
-rw-r--r--  1 root root    2405 11月 18 13:38 2015 composer.lock
-rw-r--r--  1 root root      68 11月 18 13:37 2015 composer.json
-rwxr-xr-x  1 root root 1180001 11月 18 13:34 2015 composer.phar
dr-xr-x---. 8 root root    4096 11月 18 13:33 2015 ..

composer.jsonで指定したインストール対象のパッケージはvendor配下に設置される。

[root@web01 ProjectRoot]# tree -L 2 ./vendor/
./vendor/
├── autoload.php
├── bin
│   └── phalcon.php -> ../phalcon/devtools/phalcon.php
├── composer
│   ├── ClassLoader.php
│   ├── LICENSE
│   ├── autoload_classmap.php
│   ├── autoload_namespaces.php
│   ├── autoload_psr4.php
│   ├── autoload_real.php
│   └── installed.json
└── phalcon
    └── devtools

4 directories, 9 files

composer update

[root@web01 ProjectRoot]# vi composer.json
{
    "require": {
        "phalcon/devtools": "dev-master",
        "stack/run": "^1.0"
    }
}

composer.jsonのある場所でupdateを実行する。

[root@ikt-web1 ProjectRoot]# php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
~省略~

  - Installing stack/run (v1.0.1)
    Downloading: 100%         

~省略~
Writing lock file
Generating autoload files

updateでは、composer.lockが更新される。