自作のクラスを`composer`の`autoload`で自動読み込みする

公開日:2019-08-06
最終更新:2019-08-06
※この記事は外部サイト(https://labor.ewigleere.net/2019/08/06/com...)からのクロス投稿です

Slimの練習の途中でやってみました。

composerrequireしたライブラリはvendorに入り、vendor/autoload.phpを読み込むことでそれらを一気に使えるのは分かっていましたが、自作のコンポーネントに関してもautoloadできると今更知ったのでメモ。

例えば、src/ControllerディレクトリにgetData.phpを作成し、以下のように記述します。

<?php  
namespace Slim\App\Controller;  

class getData  
{  
    //以下プロパティやメソッド  
}  

他にもsrc/Modelsrc/Helperディレクトリに適宜名前空間を付けてクラスのPHPファイルを作成しておきます。

この状態でcomposer.jsonに以下のように記述します。

    "autoload": {  
        "psr-4": {  
            "Slim\\App\\Controller\\": "src/Controller",  
            "Slim\\App\\Model\\": "src/Model",  
            "Slim\\App\\Helper\\": "src/Helper"  
        }  
    },  

psr-4autoloadの仕様ですね。これに則って、名前空間をディレクトリを記述すれば良い、と。パスの基準はcomposer.jsonのあるディレクトリ。

> composer dump-autoload  

上述のコマンドを実行することで、対応付けのためのクラスマップが生成されます。

増減がある度に実行するのが面倒……というのは、検索してみるとやはりそういう声はあるようですね。

Roboを使って自動化とか……Composer Tasks - Roboを見るとありそうですね。

これでできるのでしょうか……(未検証)。

参考

記事が少しでもいいなと思ったらクラップを送ってみよう!
0
+1
アルム=バンドのQrunch

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする