ラボ > PHP:Composer

Composerで独自ライブラリを使う

作成日:2018-12-03, 更新日:2019-04-17

基本:使うだけ

ライブラリをアップデートさせたいとかじゃなく、使うだけ。
1.ライブラリを置く
2.「composer.json」に追記
3.composerのコマンド実行:自動読み込みするようにする
4.ライブラリを使う

1.ライブラリを置く

面倒なので・・・「vendor/」の下に「mylib/」を置くことにする。

▼こんな感じにする
├ vendor/
│├ composer/
││├ autoload_classmap.php
││ 以下、略
│└ mylib/
│ └ ココに独自ライブラリを配置していく
├ composer.json
├ composer.lock
└ main.php

▼ソース:vendor/mylib/〇〇〇.php

<?php
namespace Mylib;
class 〇〇〇 {
  ~ 省略 ~
}

2.「composer.json」に追記

ひとまずファイルを直接指定する

▼「classmap」を使う

~ 省略 ~
    "autoload" : {
        "classmap": [
            "vendor/mylib/〇〇〇.php"
        ]
    }
~ 省略 ~

※「autoload」のトコに「classmap」でファイルを直接指定。

「psr-4」の場合

~ 省略 ~
    "autoload" : {
        "psr-4": {
            "Mylib\\": "vendor/mylib"
        }
    }
~ 省略 ~

3.composerのコマンド実行:自動読み込みするようにする

# composer dump-autoload

確認

「vendor/composer/autoload_classmap.php」や「vendor/composer/autoload_psr4.php」を見る。
→ファイルPATHが正しいかチェック

4.ファイル実行

▼main.phpのソース

<?php
require_once __DIR__ . '/vendor/autoload.php';
use Mylib\〇〇〇;

$hoge = new 〇〇〇();

class名とファイル名

色々と出来るだろうけど、面倒なのでファイル名とclass名を一緒にしておく。

めも

名前が被らなければ適当なトコに置いたファイルを「require_once」すれば使えるかも。

関連項目

PHP 名前空間(namespace、use)