特定のアドレスにアクセスしたとき、どの処理を呼び出して実行するか。それを管理するのが「ルーティング」です。ルーティングは書く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にルート情報を記述すると考えてください。
ルート情報の記述
以下にデフォルトで記述されている内容を示しておきます。※コメント等は省略してください。
1 2 3 4 |
<?php Route::get('/', function () { return view('welcome'); }); |
これはトップページにアクセスしたときの処理について記述したものです。Laravelアプリケーションでは、デフォルトでトップページの表示が用意されていました。
ルート情報の基本を解説します。
1 |
Route::get( アドレス , 関数など ); |
GETアクセスのルート情報はRouteクラスの「get」という静的メソッドを使用して設定します。第一引数に割り当てるアドレスを、第二引数にはそれによって呼び出された処理を用意します。GETメソッドでアドレスと処理を割り当てる、というのがルート情報設定の基本であるということはしっかりと理解しましょう。