nirasan's tech blog

趣味や仕事の覚え書きです。Linux, Perl, PHP, Ruby, Javascript, Android, Cocos2d-x, Unity などに興味があります。

PHP のライブラリ管理ツール Composer で自前のライブラリも自動で読み込む

はじめに

  • composer を使ってインストールしたライブラリは、require や import を明示的に呼ばなくても、使用したタイミングで自動でロードされます。
  • これは composer の autoload 機能を使っており、composer.json に適切に設定することで、自前のライブラリも自動読み込みに対応させることができます。

ディレクトリ構成

PROJ_ROOT/
    composer.json
    composer.phar
    vender/
    src/
        MyLib.php
        MyDir/
            MyLib2.php

Composer の設定

src をルートの名前空間に割り当てる場合

  • MyLib.php を \MyLib として呼び出す
  • MyLib2.php を namespace MyDir; として宣言し \MyDir\MyLib2 として呼び出す
{
    "autoload": {
        "psr-0": {"": "src"}
    }
}

src の名前空間にプレフィックスを付ける場合

  • MyLib.php を namespace App; として宣言し \App\MyLib として呼び出す
  • MyLib2.php を namespace App\MyDir; として宣言し \App\MyDir\MyLib2 として呼び出す
{
    "autoload": {
        "psr-4": {"App\\": "src"}
    }
}