0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHPフレームワーク「Laravel」でWEBページを作るにはどこで何をすればいい?

Last updated at Posted at 2018-11-20

フレームワークとは、ざっくり説明すると開発に役立つ機能群です。
プログラムの書き方は人それぞれです。
しかし、フレームワークを使うことで、効率よく開発できるだけでなく、他の人が見たときにもわかりやすいコードが作成できます。

今回は、フレームワークの中でもWEB開発に役立つPHPフレームワーク「Laravel」のディレクトリ構成をMVCの概念にあわせて、簡単に説明します。

Laravelはどこに何がある?

Laravelを入れたフォルダに移動すると、このようなファイルやフォルダが入っているのが分かります。

image.png

適切なフォルダにコードを記入していきます。

今回は開発の目的ごとに、どのフォルダに何をつくればいいのか説明してきます。

名前で機能をイメージしよう

初見で、どこに何があるのかはわかる人は素晴らしいです。
フレームワークを熟知していない私には、とても無理でした。
しかし、ファイルやフォルダの名前から大体どのような機能が入っているのか想像することはできます。

これを意識するうちに、どのフォルダで何をすればいいかだんだん理解できるようになるかもしれません。

WEBページを表示したい

基本中の基本、表示したいページのファイル(例えば、index.php)とcssはどのディレクトリ下のファイルに書いたらいいんだろう・・・。
htmlを記述したページのファイルは、/resources/views/
image.png

cssファイルは、/public/cssの下に書いていきます。
image.png

cssファイルはディレクトリ名がcssなので、分かりやすいですね。

ページとして表示するファイルをviewsディレクトリ下に置く理由を考えるには、MVCという概念を理解することが大切です。

MVCは、それぞれModel、View、Controllerを表していて、このViewに当てはまる処理をviewsディレクトリ下に書いていくのです。
この概念におけるViewとはデータの処理に基づいて、htmlなどの出力を行う処理を表しています。

そのため、ページとして表示するファイルはViewであるから、viewsディレクトリ下に作成すればいいのです。

メインの処理やデータベースへのアクセス

メインの処理やデータベースへのアクセスは、MVCの概念では、Modelに該当します。

Modelのファイルは/app/の下に入れます。
image.png

ただし、Modelを書く時は、自分でファイルを作成するのではなく、
laravelのコマンドartisanを使って、php artisan make:model モデル名で作成するのがおすすめです。

ユーザーからのリクエストに応じて処理

ユーザーからのリクエストを受けとり、それに応じた処理をModelやViewを制御することで実行するのが、MVC概念のControllerの役割です。

Controllerのファイルは/app/Http/controllers/の下に入れます。
image.png

ControllerもModelと同様に、artisanを使って、
php artisan make:controller コントローラー名を実行することができます。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?