12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

つべこべ言わずComposerでシンプルにautoloaderを使用したいとき

Last updated at Posted at 2015-06-22

#概要
ってことでシンプルに行きます。

今の時代メモリの節約や実行速度なんかより、見通しがよくて可読性、保守性の高いコードのほうが好まれるので、できるだけコード全体もシンプルにあるほうがいいと思います。

#クラスファイルのインクルード

HogeController.php
<?php

require_once '../application/models/Model_A.php';  //3つともクラスファイル
require_once '../application/models/Model_B.php';
require_once '../application/models/Model_C.php';

class HogeController{


}

個人的にはあまりこういう書き方はしたくないです。
なのでcomposer.jsonに以下のように記述します。

composer.json
"autoload": {
    "classmap": ["./application/models/Model_A.php",
                 "./application/models/Model_B.php",
                 "./application/models/Model_C.php",
    ]
}

そして、ターミナルでそのjsonファイルまで移動して以下を実行。

composer dumpautoload

これでautoloadのみが更新されます。

更新に成功すればcomposerのautoload_classmap.phpの戻り値の配列の中にそれに対応した行が追加されてるはずです。

例: 'Model_A' => $baseDir . '/application/models/Model_A.php',

#それ以外のファイルのインクルード
クラスファイルじゃなくて、単に関数定義とかしてるだけのファイルをオートロードしたいときはこんな感じ。

composer.json
"autoload": {
    "files": ["./application/funcs/functions_A.php"]
}

ってことで以上です。

12
9
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?