Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
53
Help us understand the problem. What is going on with this article?
@WebSysRider

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」の単語を書くのは、バリデーションチェックの定義くらいです。

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

Laravel動画解説

2021年度は、LaravelやGitの解説動画をYoutubeで始める予定で準備中です。

おそらく、自前で作ったフォルダ内のクラスがLaravelに認識されなくてハマっている方もいらっしゃることでしょう。
2021年4月からQiitaとYoutube両方で各種IT技術情報を解説していきます。

53
Help us understand the problem. What is going on with this article?
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
WebSysRider
吾輩は、Web系システムを本業としているシステムエンジニアである。 新人や経験が浅い人を対象にたまに何か情報を発信している。 2021年度は、Youtubeを使った動画解説も実施予定で準備を進めております。 休日はバイクを趣味としているが、時々バイク以外に新技術の研鑽をしたりしなかったり。。 仙台市内の勉強会に時々出没します。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
53
Help us understand the problem. What is going on with this article?