Composer入れたら1回requireしたらもう大丈夫って
前の記事で書きましたけど、自分で定義したクラスや
ファイルをオートロードする方法を今日は書きます。
クラスをComposerでオートロードする方法
classmapを定義する方法と、
PSRの仕様に基づいて定義する方法とがあります。
PSRの仕様でやると名前空間の解決とかが出来て便利です。
特に自分が開発するレベルでクラス名が被る事は無さそうなので
分かりやすいclassmapでの定義方法を書いていきます。
でも、PSRのやり方わかり易く載ってるとこあるので
エントリー紹介しておきます。
composer.jsonに追記
composer initが終わったcomposer.jsonがあると過程します。
composer initについては、こちらの記事を見てください。
composer.jsonにオートロードに追加するということと、
オートロードするクラスを追加していきます。
オートロードしたいファイルがあれば追加します。
"autoload": { "classmap": ["lib/Foo.php"], "files": ["src/functions.php"] }
こうやってcomposer.jsonを編集したのち
このコマンドを打ちます。
composer dumpautoload
そしたらvendor/composer/autoload_classmap.phpのreturn arrayの中身が
何にも無い状態から、クラス名=>pathの様な連想配列に変わってると思います。
vendor/composer/autoload_classmap.phpも同様に、return arrayの中身に
pathが追加されていると思います。
autoloadする
これらを確認した後ドキュメントルートのindex.phpに
require "vendor/autoload.php";
してやれば、classmapで定義したクラスと
functions.phpに定義した関数を使う事ができます!