PHPフレームワーク「Laravel」における処理の流れと、ルーティングを理解しよう
人気のPHPフレームワークLaravelを習得しよう 第2回
ルーティング登録の基本
Laravelアプリがリクエストを受け取ってからどのような流れで処理が行われるのか、その中でweb.phpの働きがどういったものかがわかったところで、web.phpの具体的な書き方を紹介していきましょう。
ルーティング登録の基本はRoute::get()とコールバック関数
ここで、前回web.phpに追記したコードをもう一度リスト2として掲載しておきます。
Route::get("/hello", function() { // (1)
print("<h1>Hello World!</h1>"); // (2)
return null; // (3)
});
Laravelのルーティング情報登録の基本は、リスト2の(1)の記述であり、Routeクラスのget()メソッドを使います(※1)。構文としてまとめると以下の通りです。
Route::get(ルーティングパターン, 対応するコールバック関数);
※1:正確には、このRoute::get()は、Routeクラスのstaticメソッドget()を呼び出しているわけではありません。これは、Laravelのファサードという仕組みを使ってIlluminate\Routing\Routerクラスの各メソッドをstaticのように扱えるようになったものです。
リスト2の(1)ではルーティングパターンとして
/hello
を登録しています。
このパターンは、このindex.phpが実行されるポイントからの相対パスで記述します。index.phpが実行されるURLは「http://localhost/firstlaravel/public/」です。これに上記ルーティングパターンを付与したURLである「http://localhost/firstlaravel/public/hello」へのアクセスがあった場合、続くコールバック関数が実行される仕組みです。リスト2では、コールバック関数として無名関数を記述しており(※2)、(2)と(3)がコールバック関数の中身です。この(2)で「Hello World!」という文字列を表示させています。
(3)では戻り値としてnullをリターンしていますが、本来、この戻り値は画面に表示させるものをリターンさせます。ということは、実は、リスト2の(2)と(3)はまとめて以下のように記述できます。
Route::get("/hello", function() {
return "<h1>Hello World!</h1>";
});
ただ、実際には、もっと複雑なHTMLを表示させるのが普通です。その場合は、このreturn句の記述はもっと違うものになります。それに関しては、今後の連載中に紹介していきます。
※2:コールバック関数を使用しないルーティング登録方法もあります。こちらも、今後紹介していきます。
ルートパラメータ
リスト2のコールバック関数の引数は何も記述されていませんでした。ここに引数を記述し、利用する場面があります。そこを扱っておきましょう。
まず、web.phpにリスト3の内容を追記してください。
〜省略〜
Route::get("/whoAreYou/{name}", function($name) { // (1)
return "<h1>こんにちは".$name."さん</h1>";
});
追記が終了したら以下のURLでアクセスしてください。
- http://localhost/firstlaravel/public/whoAreYou/Bob
図3のように表示されます。
さらに、URLを以下に変更してください。
- http://localhost/firstlaravel/public/whoAreYou/James
図4のように表示されます。
これらの実行結果と、リスト3の(1)のルーティングパターンとを見比べてください。ルーティングパターンにある{name}の部分を変更するとそれに合わせて表示内容も変わります。
Laravelのルーティング登録では、URLに変数を埋め込むことができます。これを「ルートパラメータ」といい、ルーティングパターンに以下の記述をします。
"/…/{パラメータ名}"
この記事は参考になりましたか?
- 人気のPHPフレームワークLaravelを習得しよう連載記事一覧
- この記事の著者
-
WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
