MVC

Laravelのフォルダ構成とルーティングについて

特定のアドレスにアクセスしたとき、どの処理を呼び出して実行するか。それを管理するのが「ルーティング」です。ルーティングは書くWebページを管理する基本となるもの。このルーティングの基本について、しっかりと理解しましょう。

アプリケーションの構成

まずはLaravelのアプリケーションというのがどのようになっているのか、その中身を見てみましょう。

Laravelのファイルについて

まずは「laravelapp」フォルダ内に作成されているファイル類について解説します。

.env, .env.example 動作環境に関する設定情報
.gitatttrutes, .gitignore git利用に関する情報
artisan artisanコマンド(php artisan serve)で使ったもの
composer.json, composer.lock composerの利用に関するもの
package.json JavaScriptのパッケージ管理ツール(npm)で利用するもの
phpunit.xml PHPUnit(ユニットテストプログラム)に関するもの
server.php サーバー起動時に利用されるプログラム
webpack.mix.js webpackというJavaScriptパッケージツールで使うもの
yam.lock yamというパッケージマネージャが使うファイル(自動生成される)

ここにはGitろいうプロジェクト管理ツールやComposer関係のファイルなどもあり、必ずしも開発者がすべて利用するわけではありません。

laravelのフォルダについて

app アプリケーションのコアとなるコードを含むディレクトリです。

アプリケーション内のクラスのほとんどはこの中に設置されます。

bootstrap フレームワークの初期化を行い、autoloadingを設定するファイルがあります。また、フレームワークが作り出すキャッシュファイルを貯めたりもする。
config アプリケーションの設定ファイルを置くディレクトリ。
database データベースのマイグレーションやシードを置くディレクトリ。
public アプリケーションに贈られる、すべてのリクエストのエントリーポイントとなるindex.phpファイルがある箇所。

ここには他に画像、JS、CSSといったものを置いたりする。

resources コンパイル前のLESS、SASS、JS、viewといったものを置く箇所。また、言語ファイルも置いたりもします。
routes アプリケーションのすべてのルートを定義するディレクトリ。
storage Bladeテンプレートをコンパイルしたものやセッションのファイル、キャッシュファイル、その他のフレームワークが作り出したファイルなんかが置かれる。
tests PHPUnitなどの自動テストを置くためのディレクトリ。
vender Composerの依存内容を置く箇所。

「app」フォルダについて

Laravelアプリケーションに用意されているフォルダの中で最も重要で、使用する頻度が高いのは「app」フォルダです。

「app」フォルダはLaravelアプリケーションの「アプリケーション」部分のプログラムが配置されます。「app」フォルダに用意されているフォルダを簡単にまとめておきます。

Console コンソールプログラムを配置するところです。
Exception 手以外に関する処理を配置するところです。
Http Webアプリケーションにアクセスしたときの処理をまとめて置いて置くところです。

アプリケーションの基本的なプログラムはここに作成します。

Providors プロバイダと呼ばれるプログラムを配置します。
User.php ユーザー認証に関するスクリプトです。

ルーティングと「routes」フォルダ

Laravelは、特例のアドレスにアクセスをすると、そのアドレスに割り付けられたプログラムが実行され、それにより必要な処理や画面表示などが作成されます。

このように「○○というアドレスにアクセスをしたら、××という処理を呼び出す」という関連付けを行っているのが、「ルーティング」という機能です。

ルーティングは、アクセスを設定している情報を管理する機能です。

「routes」フォルダについて

このルーティングに関する情報をまとめてあるのが、「routes」フォルダです。この中には、デフォルトでいくつかのスクリプトファイルが準備されています。

api.php APIのルーティングです。プログラム内から利用するAPIの機能を特例のアドレスに割り当てるのみ利用されます。
channels.php ブロードキャストチャンネルのためのルーティングです。
console.php コンソールプログラムのためのルーティングです。
web.php これが一般的なWebページとしてアクセスするためのルーティングです。

基本的なWebページとして公開するものはすべてWeb.phpにルート情報を記述すると考えてください。

ルート情報の記述

以下にデフォルトで記述されている内容を示しておきます。※コメント等は省略してください。

これはトップページにアクセスしたときの処理について記述したものです。Laravelアプリケーションでは、デフォルトでトップページの表示が用意されていました。

ルート情報の基本を解説します。

GETアクセスのルート情報はRouteクラスの「get」という静的メソッドを使用して設定します。第一引数に割り当てるアドレスを、第二引数にはそれによって呼び出された処理を用意します。GETメソッドでアドレスと処理を割り当てる、というのがルート情報設定の基本であるということはしっかりと理解しましょう。

 

これからLaravelを始めるならこれが最適!!


今までLaravelに関しての良書はほとんどなく、あっても内容が古かったり分かりにくいのばかりで、先駆者達は苦労したのではないでしょうか?

そんな中で発売されたこの本は、現在の日本国内にて唯一のLaravelの良書と言い切っても良いかと思います。PHP中級者以上なら苦労することなく読めるでしょう。Laravelは高機能ゆえ、全機能を説明してはいませんが、この本をとっかかりにすれば自ずとLaravelをマスターすることができると思います。