Laravelのvendorとは?注意点やオーバーライドを絵付きで分かりやすく解説

Laravel入門講座

Laravelのvendorディレクトリとは、ライブラリが入っている場所です。

vendor内のファイルは直接編集せず、オーバーライドしましょう。つまり必要部分をプロジェクトのappディレクトリにもってきて編集します。

ただ、このあたりのことって「なるほど」とは思いつつも、一体どういうことか、いまいち分かりにくくないですか?

Laravelを学びたてのときのわたしは、プログラミング経験も少なかったため、vendorディレクトリの意味がよく理解できませんでした。

ただ、ここ、意外と大事なポイントです!!

ぜひ理解してほしいと思い、絵とたとえ話をいれつつ、vendorディレクトリのことを分かりやすく解説してみました。読んでください^^

Laravelのvendorとは?しちゃいけないことは?絵で分かりやすく解説しました

まず前提として、vendorディレクトリに入ったライブラリは、あなたに必要な参考書だとします。

普段はこの参考書を家で使っているとします。

ですが、図書館で勉強するときは、重いので持ち歩きたくありません。そこで、図書館にある同じ参考書を借りて勉強することにしました。

図書館の本は、当然、書き込みをしたりしてはいけませんよね。

そこで図書館で参考書を使う時は、自分用のメモファイルに必要なことを書いておくことにします。

こうしておけば、図書館から出てもいつでも参照できます。

 

こんな感じの状況、思い浮かべていただけましたか?

参考書は家でも図書館でも、また学校でも参照できますが、自分用のメモを書いておくことはできませんよね。

これと同じように、vendorフォルダの中のライブラリファイルは、編集できません。

もちろん図書館の本と違ってローカル上でライブラリファイルを編集しても怒られませんが^^;

ただ、プロジェクトを本番環境に反映するときには、vendorディレクトリは持っていけないのです。なのでせっかくローカル上で編集しても、無駄になってしまうわけです。

本番環境でvendor内のライブラリをインストールする方法 composer install

では本番環境ではvendor内のライブラリをどうやってもってくるか?

次に、この部分を説明します。

Laravelプロジェクトの中にはcomposer.jsonとcomposer.lockファイルがあります。

composer.json には、必要とするライブラリの種類と、必要なバージョンの条件が書いてあります。

composer.lockには、ライブラリをローカル環境でインストールしたときに、実際にインストールされたライブラリの種類とそれぞれのバージョンが書いています。

  • composer.json:必要とするライブラリの種類と、必要なバージョンの条件が記載
  • composer.lock:ライブラリをローカル環境でインストールしたときに、実際にインストールされたライブラリの種類とそれぞれのバージョンが記載

本番環境では、このcomposer.lockを参考に、ライブラリの大元から必要なファイルを取ってきます。

このとき、composer installコマンドを使います。

composer.lockファイルがあることで、ローカル環境と、ほかの開発者の環境、本番環境で、同じバージョンをインストールすることができます。

じゅんこ
じゅんこ

ここ、大事なポイントです!

vendor内のライブラリに変更を加えるには、オーバーライドを行う

なるほど。本番環境でのライブラリのインストール方法は分かりました。

ですが、vendor内のライブラリに自分で変更を加えたい時はどうしたらよいのか?

疑問が残りますよね。

こういった時には、vendorの下の書き換えたいファイルを、プロジェクトのappディレクトリの下にコピーして、そこで変更します。

こうすることで、編集を加えた部分が優先されるようになります。

この作業を、オーバライドと言ったりします。

オーバーライドとは、優先するとか、上書き変更するといった意味です。

オーバーライド=上書き変更

先ほどの絵の説明でいうと、自分用のメモで書いた情報が、オーバーライドした情報となります。こちらが、元々の参考書よりも優先される感じですね。

オーバーライドの方法

オーバーライドの方法ですが、何をどのようにするかによって異なります。

たとえばログイン機能を搭載すると、ユーザー情報を登録後に自動でメールが送信されますが、このメールの内容を書き変えたいときは、次のようにします。

  1. Notification(通知)を新規で作成・編集
  2. Userモデルファイルに、オーバーライドするための設定をいれる。

まとめ&さいごに

今回はvendorディレクトリについて解説しました。

まとめると、次のとおりです。

  • vendorディレクトリの中にはライブラリが入っている
  • ローカル上でvendorディレクトリの中を編集しても、本番環境に反映されない
  • そのため、オーバーライドを行う。大雑把にいうと、vendorの中の書きかえたい部分をappディレクトリの下にもってきて編集する。
  • 本番環境では composer installコマンドを行って、ライブラリをインストールする

 

今回ご紹介したような知識は、意外と知る機会が少ないかと思います。ただそうなると、Laravelを覚えるのは難しく感じるかもしれません。

わたしはphp学習後、すぐLaravelを学び始めましたが、今回のvendorのことなど、色々とわからないことだらけで苦労しました…

そこで、以前のわたしのように「実務経験は少ないけれど、Laravelを学びたい!」という方のために、「初心者のためのLaravelの教科書」という学習サイトを作り、運営しています。

Laravelの使い方・基本知識を学びつつ、実際のフォーラムサイトを開発していく内容です。

ご興味があればクリックして、ご案内ページを見てみてくださいね。

Junko
Junko

基礎編は無料です♪

Laravelの教科書について、詳しく見てみる

Laravel入門講座

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる


Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
セミナーで、StripeやChatGPT連携、デバックなど実践スキルを分かりやすく学べます。

ラボの案内を見てみる

Twitter始めました。
40代からプログラミング!

コメント

  1. 佐々木 より:

    分かりやすすぎました。
    ありがとうございます!‍♂️

  2. 佐々木 より:

    (コメントの‍♂️は顔文字です。すいません!)

  3. Junko Junko より:

    コメントありがとうございます^^
    嬉しいです。

タイトルとURLをコピーしました