====== 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が更新される。