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.lockを参考に、ライブラリの大元から必要なファイルを取ってきます。

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

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

じゅんこ
じゅんこ

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

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

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

vendorの下を変更できないため、オーバライドします。

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

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

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

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

先ほどの絵の説明でいうと、自分用のメモで書いた情報が、参考書よりも優先される感じですね。

オーバーライドの方法

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

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

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

詳しい手順は別の記事で解説してます。

じゅんこ
じゅんこ

試してみたい時に、参考にしてくださいね。

まとめ&さいごに

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

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

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

 

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

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

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

もしご興味があればクリックして、詳細を見てみてくださいね。

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

Webアプリ開発に大事な知識を得つつ、Laravelの使い方を実践的に学べます。

登録無料です♪

Laravel 入門講座

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

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

【無料プレゼント】

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

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

詳細はこちらをクリック
【個別サポート実施中】

「本ブログに記載の方法を試してみたけれど、うまくいかない」「コードを見てほしい」という方のために、有償でメールサポートいたします。以下のボタンをクリックして相談フォームにアクセスして下さい。

詳しく見る

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

コメント

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