こんにちは、かんたろうです。
職業訓練校で「グラフィック・WEBデザイン修得科」というコースを修了した後、WEB制作を行っている会社に入社して早2カ月半が経ったところなのですが、相変わらず周りの人に助けてもらってばっかりで、自分の非力さに心がぶん殴られています。人にも環境にも恵まれているので、僕の心をぶん殴ってくるのは僕自身の自尊感情的なところなのですが、、、ふぅ

今回は、Web初心者の僕が仕事中に分からなくなった「Laravelを使ったWebサイトのトップページを編集するにはどのファイルを編集すればいいのか?」というところを見ていくために、今話題の「chatGPT」の力を借りてLaravelの全容を把握していきたいと思います。
仕事が進められない
先日、仕事中に自分があることを頻繁に感じていることに気が付きました。
それは、「Webページのデザインを編集するにしても、Webサイトのシステム部分をある程度知っておかないと、そもそもどの階層のどのファイルをいじれば良いのかが分からないなぁ」ということです。
僕はhtml,css,jsファイル以外に関して無知なので、編集したいWEBページがPHPなどと絡んでいるとき、すぐに途方に暮れてしまいます。
そのため、社内の同じチームの人に「どこをいじれば良いですか?」という質問をしないと仕事が進められないという無能ぶりを発揮してしまっています。

自分の失態を言語化していくと、羞恥心が遅れてやってくるな、、、
僕が働いている会社では、「Laravel」というPHPフレームワークを使って制作されているWEBサイトを扱うことが多いため、「早くLaravelの全体像を理解して自力で仕事が進められるようにならなければ、、、」という焦燥感に駆られています。
そこで僕はあるものに力を借りることにしました。
教えて!chatGPT
今回、最近話題のchatGPTの力を借りることにしました。

chatGPTのことを知らない人もいるかもしれないので、chatGPTに自己紹介をしてもらいました。

chatGPTとは、「OpenAIによってトレーニングされた大型の言語モデル」のこと
では、「OpenAI」とは何なのでしょうか?chatGPTに聞いてみました。

OpenAIは、人工知能の研究と普及を目的とする非営利団体です。彼らは、自然言語処理、画像認識、強化学習などの人工知能技術の発展に貢献することを目的としています。
つまりchatGPTは、自然言語処理や画像認識などといった情報処理を人力なしでやってのけるというスーパーなツールです。また、処理スピードもとんでもなく速いです。近未来感のある道具だと言ってもいいのではないでしょうか?
Laravelを使ったWebサイトの全体像
前置きが大変長くなりましたが、まずはLaravelの全体的なディレクトリ構成について、chatGPTに説明をお願いしてみました。

Laravel全体の構成について教えてください

Laravel は PHP フレームワークの一種です。Laravel アプリケーションは、以下の構成要素からなります。

- ルート (routes): アプリケーションのエンドポイントを定義するために使用されます。URL に応じてコントローラーを呼び出すために使用されます。
- コントローラー (controllers): コントローラーは、ビジネスロジックを含んだクラスです。ビューを呼び出すために使用されます。
- モデル (models): モデルは、データベースとやりとりするために使用されます。モデルはデータベーステーブルと 1 対 1 にマッピングされます。
- ビュー (views): ビューは、アプリケーションのユーザーインターフェイスを定義するために使用されます。ビューは HTML で記述されます。
- マイグレーション (migrations): マイグレーションは、データベースのスキーマを管理するために使用されます。
- セラミックス (ceramics): セラミックスは、アプリケーションの依存関係を管理するために使用されます。
- サービスプロバイダ (service providers): サービスプロバイダは、アプリケーションのサービスを管理するために使用されます。

これらの構成要素を使用することで、Laravel アプリケーションを構築することができます。Laravel アプリケーションは、MVC アーキテクチャに基づいて構築されます。このアーキテクチャは、モデル、ビュー、コントローラーの 3 つの要素に基づいています。
こんな感じで、chatGPTに依頼を投げかけると的確な回答が返ってきました。しかも数秒で。
今回の「Laravel全体の構成について教えてください」という依頼に対しては、Laravelの構成要素についてだけでなくMVCアーキテクチャについても返答してくれたため、初学者が学ぶためのヒントを十分に頂くことが出来ました。
(ちなみに、上記の文はchatGPTの返信文をそのままコピペしています。文章に違和感を全く感じさせるところがなく、修正する必要がありませんでした。蛍光ペンは僕が自分で引きました。)
もちろん返信文を読むだけで全体像を完全に掴むことはできませんが、分からないところについて、さらにchatGPTに質問するというようにしていけば、ある程度の疑問は解消させていくことができそうです。
トップページを編集するには?
先ほどの「Laravel全体の構成について」は、全部を理解するのに時間がかかりそうなので、とりあえず先に進むことにします。
今回僕が1番知りたかった「Laravelを使ったWebサイトのトップページを編集するにはどのファイルを編集すればいいのか?」というところをchatGPTに質問していきたいと思います。

Laravelを使ったWebサイトのトップページを編集するには、どの階層のどのファイルを編集すればいいですか?

Laravelのトップページは、「resources/views」フォルダ内にある「welcome.blade.php」というBladeテンプレートファイルを編集することで編集することができます。

Bladeテンプレートエンジンは、HTMLとPHPを混在させることができ、Laravelではデフォルトで使用されています。

「welcome.blade.php」ファイルには、トップページのレイアウトとコンテンツを記述することができます。
こんな感じで、トップページを編集するためにどの階層のどのファイルを見ればいいのかというところだけでなく、該当ファイルがBladeテンプレートファイルだという情報まで教えてくれました。
とはいえ、Laravelについて無知な僕には「Bladeテンプレートファイル」という単語がイマイチぴんと来ません。
そこで、再度chatGPTに聞いてみました。

Bladeテンプレートファイルってどんな特徴を持っていますか?

BladeテンプレートエンジンはLaravelフレームワークの標準テンプレートエンジンです。以下がBladeテンプレートエンジンの特徴です:

- 簡潔な記法: Bladeテンプレートエンジンはシンプルな記法を採用しています。例えば、PHPとHTMLを混在させる場合に、PHPのタグを使用する代わりに「@」を使用することができます。
- 拡張性: Bladeテンプレートエンジンは、Laravelアプリケーション内でのレイアウトやコンポーネントの設定を簡単に行うことができます。
- 分割可能なテンプレート: Bladeテンプレートエンジンは、複数のテンプレートを組み合わせて使用することができます。これにより、同じレイアウトを使用する複数のページを作成する際に、コードを再利用することができます。
- セキュリティ: Bladeテンプレートエンジンは、自動的に入力されたデータをエスケープするため、アプリケーションを安全に保つことができます。

以上がBladeテンプレートエンジンの特徴です。Laravelでは、このBladeテンプレートエンジンを使用することで、よりスムーズで効率的なWebサイト開発を実現することができます。

なるほど。Bladeテンプレートエンジンっていうのは、PHPをより便利に扱うための特徴が盛りだくさんで、それらがLaravelを人気のフレームワークとしての地位を確立させているのか!(それっぽくまとめただけ)
こんな感じで、Laravelに対する理解を少しずつ高めていくことが出来ました。本当に少しずつですが、、、
実際に環境構築をしてからLaravelを触ってみる
chatGPTのおかげでLaravelのどの部分を触ればトップページの編集が出来るのかが分かりました。とはいえ、Laravelの仕組みについてフワッとしか理解していないため、「どのように触っていけばよいか」というところまでは理解できていないです。
次回の投稿では、実際に自分の手元でLaravel環境を構築していきたいと思います。