概要
PHPのComposerについて、忘れないようメモを残しておく。
Composerとは
PHPのパッケージ管理システム
インストール
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
$ composer --version
Composer version 1.5.1 2017-08-09 16:07:22
Packagist.org
だれでもパッケージを公開できるcomposerの中央公開リポジトリです。
composerで使えるパッケージが検索できます。
-
例) FuelPHP
https://packagist.org/packages/fuel/fuel -
例) Lumen (Laravel軽量フレームワーク)
https://packagist.org/packages/laravel/lumen
composerの設定ファイル
composer.json
composerで管理する依存パッケージを定義するためのファイル。
自分で作成する(vi composer.json)か、composer initで対話的に作成できる。
{
"require": {
"ircmaxell/random-lib": "1.0.0",
}
}
composer.lock
チーム内で同じバージョンを共有するための仕組み。
composer install/updateでインストールされたパッケージのバージョンを記録。
※ githubなどのリポジトリにてバージョン管理する必要があります。
[composer installした場合]
composer.lockがあれば、記されたバージョンのパッケージがインストールされる。
[composer updateした場合]
composer.lockに記されたバージョンを無視して、
composer.jsonに記載の範囲で最新版に更新される。
vendorフォルダ
composer installコマンドにてインストールされたプログラムは、
composer.jsonと同じ階層にあるvendorフォルダ内に配置されます。
ただし、composer.jsonにて任意のパスが指定されている場合は
その指示の場所に配置されます。
$ composer install
$ ls -la
composer.json
composer.lock
vendor
$ ls -la vendor/
autoload.php
composer
ircmaxell
autoloader
vendorフォルダ内にautoload.phpが自動で作られます。
autoload.phpを作成するプログラム側でrequireすれば、
composerでインストールしたクラスを自動的にロードしてくれます。
<?php
require_once 'vendor/autoload.php';
$factory = new RandomLib\Factory;
参考サイト
- Composer Document - getcomposer.org
- Qiita - composerとは
- Qiita - Composerをインストールしてみた
- Composer による依存管理 と Packagist によるライブラリの公開
- ComposerとPackagistを使ってみる。
- composer 導入をまじめに考える
以上