Help us understand the problem. What is going on with this article?

PHPフレームワーク「composer dump-autoload」の重要性について

はじめに

この記事の対象者は、「PHPはやったことあるけど、フレームワークはあまり使ったことないよ」って人を対象にしております。
フレームワークの構成を壊さずにプロジェクトを遂行できるように少し豆知識を。

と、言う筆者も実は昔。。。
あんまり理解せずにフレームワークの構成を壊していろいろ作っちゃっていました。。。

しっかり構成に従って効率的にコーディングしていきましょう!!!
その上で重要になるのがいろいろありますが、今回紹介するのはcomposer dump-autoloadです。

フレームワークを使用せずにPHPでスクラッチ開発をしていると、よくソースの頭に書くものがありますよね?

それはコチラ!

require('ファイル名');
require_once('ファイル名');

Laravelなどフレームワークを使用してコーディングする際は、上記の記述は不要です。
他のクラスを参照したくても上記の記述は書いちゃダメ。

じゃ、どうすればいいの??ってなりますよね?

次に進みます。

ダンプオートロード

なんかカタカナで見出し書くとダサく見える。。。
それはさておき。

よく使うコマンドとして

$ composer dump-autoload

があります。

この海のものとも山のものとも知れず何者か?
これは、わかりやすく言うと、冒頭に紹介した「requireなんとか」のコードを不要にしてくれるものです。

例えば、何か共通的に使いたいクラスを作ったとします。
そのクラスを使いたいソースの冒頭に「requireなんとか」と書きまくって対象のクラスを読み込む。
これが、従来のスクラッチ開発。

と、なると。。。

・クラスを削除した。
・ファイル名を変更した。
・あちこちで使いたい。

全部の「require」の記述を変更しなくてはなりません。

そこで便利なのが、「composer dump-autoload」
このコマンドを実行すると、Vender配下のとあるファイルに全ての*.phpファイルのパスが自動的に記述されます。
そして、何がオイシイノ?

それは、requireなんとかを使用無くても、どこからでも対象のソースやクラスを呼び出せるのです。
また、クラスを増やした、ファイルを増やした、変更した。
そんな場合も「composer dump-autoload」を打つだけです。

変に「require」を使用するときっといつかバグるでしょう。
そしてメンテナンス性に欠けます。

そのため、「require」は忘れてください。
「require」の単語を書くのは、バリデーションチェックの定義くらいです。

以上、「なんかソースが無いってエラーなった」ってときは、まずは今回紹介したコマンドを打ってみましょう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away