[中学生でもわかるLaravel]てかLaravelってなんやねん<2025>

<font color="#008080">**"とりあえずLaravelを触ってみます。初投稿"**</font>

---

# 今回やること
- Laravelの概要を初心者用に解説
- 自分用のWebページ（スケジュール管理やタスク管理）を作っていきます！


# 初めに
こんにちは。:raised_hand_tone2:日々アウトプットしようという試みです。自分のアウトプット力を高めつつ誰かのプラスになれば幸いです。

今まではGoogleスプレッドシートでスケジュールなどを管理していましたが、
「もっと自分に合った便利なページがほしい」と思い立ち、Laravelで作ってみます。

💡筆者もまだ勉強中なので、内容は7割くらいの信頼度で読んでください。
また**コメント**していただけると、私の大きな学びになるので是非お願いします。
## Laravelってなんやねん

:mortar_board:　Laravel（ララベル）は、PHPという言語をもっと簡単・便利に使えるようにしたツールです。一般的このようなツールの事を「**フレームワーク**」といいます。

　PHPだけで書くと大変なところを、Laravelがまとめてやってくれます。

---
:confused:　調べると何やら人気があるとか、もうオワコンだといわれています。正直実際どうなのでしょう。現場の意見を聞いてみたいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4055676/2da73d04-a985-41cf-b4ca-44298d59e938.png)

実際にグーグルトレンドで軽く調べてみました。(Googleで検索された量を比較するサイトです)
>LaravelとCakePHPはPHPのフレームワークです。
ReactとVue.jsはjavascriptのフレームワークです。現在最人気と思われる.js(javascript)のこれらが競合になると思いましたので一緒に検索してみました。

#### 考察:writing_hand_tone2:

どうでしょう。まず<font color="#009900">React</font>が圧倒的です。まさかPHPすらも超えているとは、、さすが.jsのトップフレームワークです。
ただそれを除けば人気自体は上々かなと思いました。
また全体の傾向として右肩下がりになっているので<font color="#0000bb">Laravel</font>がオワコンというより全体に下がってきているだけなのかもしれません。

# Laravel概要

:alien:. Laravelって何がいいねん。

:mortar_board:. 素のPHPで開発する場合には大量のコードとファイルが必要で、整理が大変なのです。それを簡単にしてくれています。

:alien:. なんでそんなことができんねん。

:mortar_board:. Laravelでは
　1. 初めから<font color="#FF0000">**機能**</font>ごとにファイルを分けている。 
　2. 省略記述をできるようにしてくれている。

---

具体例で話していきます。
Laravelをインストールすると沢山のPHPファイルがダウンロードされます。(次記事とかでやりたい)
その中でよく使うファイルを紹介します。
>*注意　パスはデフォルト状態です。ルートディレクトリはLaravelとしています。
`<name>`は自由記述部分ですが、大文字の区別があります。結構大事ですが今は省略します。

- ##### :eye:ビュー(views) ` Laravel\resources\views\<name>.blade.php`

 　見た目の事はビューファイルにお任せあれ。
  
　HTMLの記述をする部分です。CSSや.jsは別のフォルダに保存する場所があります。**.blade.php**と命名するのがルールです。これをすることによって下で説明するコントローラー.phpに見つけてもらえます。

---
- ##### 🚩コントローラー(controller)
Laravel\app\Http\Controllers\<Name>Controller.php

　各ファイルを繋ぎます。

　**Controller.php**と命名にするのがルールです。.blade.phpを探し表示したり。モデルからデータをもらったりそれをまた.blade.phpに渡したりします。
 ページの本体的な部分なので少ないのならHTMLの記述やデータベース、バリデーションの記述もここで済ませることもできます。

---
- ##### :map:ルーティング(routing)
Laravel\routes\web.php

URLの設定ができます。

　コントローラーだけではブラウザで見ることができません。そのためコントローラーにURLの設定をしてブラウザ上で見ることができるようにするのがweb.phpの役目です。

---

ここの流れが大切なので例を挙げて紹介します。
<例>
>ボタンを押すとホームページに移動する
sample.blade.php→web.php→PageController.php→homepage.blade.php

:eye:今はsample.**blade.php**という仮のページにいます。
ボタン:rotating_light:を押すとURLが/homeの場所に飛びます。:airplane:

記述例は以下です
`<button onclick="location.href='/home'">ホームページに戻る</button> `

今回URLが/homeなのはホームページという想定です。

:arrow_double_down:(/homeへ飛ぶ)

:map:URLの記述が**web.php**には書いています。
`Route::get('/home', [PageController::class,'home']);`
ここには「URLが/homeなのは、PageControllerの中にあるクラスhomeだよ」🚩と書いています。
>クラスとはコードのまとまりの事です。それぞれ名前を付けて呼び出せます。

:arrow_double_down:(コントローラーのhomeクラスを探す)

🚩今回homeクラスを探すと、その中にはホームページのhomepage.blade.phpを表示させる記述がありました。
これにてホームページが表示されました。
`public function home() {return view('homepage');}`

:eye:(ホームページの表示)

これにてホームページへの遷移ができました。
流れは複雑ですが記述は少なく使いまわしが可能です。

---
##### :articulated_lorry:モデル(Model) `Laravel\app\Models\<Name>.php`

最後にデータベースの情報が入っているモデル君です。

顧客の入力データや日付、様々なデータを保存しているデータベース。それの取り扱いをこなしてくれるのがこのモデルファイルです。

素の記述ではデータベースから取り出すのは大変なのでとても助かります。




# 終わりに

お疲れ様でした。
本当はLaravelの導入まで書きたかったですが思ったより文が多くなってしまいました。
もし誰かの役にたてたなら幸いです。
またコメント待っていますので、「みたよ」だけでもいいので是非よろしくお願いします。