12
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Composerについてのメモ

概要

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;

参考サイト

以上

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
12
Help us understand the problem. What are the problem?