PHP
Composer

Composerについてのメモ

More than 1 year has passed since last update.

概要

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で使えるパッケージが検索できます。

composerの設定ファイル

composer.json

composerで管理する依存パッケージを定義するためのファイル。
自分で作成する(vi composer.json)か、composer initで対話的に作成できる。

composer.json
{
    "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;

参考サイト

以上