SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

人気のPHPフレームワークLaravelを習得しよう

PHPフレームワーク「Laravel」における処理の流れと、ルーティングを理解しよう

人気のPHPフレームワークLaravelを習得しよう 第2回

ルーティング登録の基本

 Laravelアプリがリクエストを受け取ってからどのような流れで処理が行われるのか、その中でweb.phpの働きがどういったものかがわかったところで、web.phpの具体的な書き方を紹介していきましょう。

ルーティング登録の基本はRoute::get()とコールバック関数

 ここで、前回web.phpに追記したコードをもう一度リスト2として掲載しておきます。

[リスト2]routes/web.php
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の内容を追記してください。

[リスト3]routes/web.php
〜省略〜
Route::get("/whoAreYou/{name}", function($name) {  // (1)
	return "<h1>こんにちは".$name."さん</h1>";
});

 追記が終了したら以下のURLでアクセスしてください。

  • http://localhost/firstlaravel/public/whoAreYou/Bob

 図3のように表示されます。

図3:ルートパラメータを利用した画面
図3:ルートパラメータを利用した画面

 さらに、URLを以下に変更してください。

  • http://localhost/firstlaravel/public/whoAreYou/James

 図4のように表示されます。

図4:ルートパラメータを別のもにした画面
図4:ルートパラメータを別のもにした画面

 これらの実行結果と、リスト3の(1)のルーティングパターンとを見比べてください。ルーティングパターンにある{name}の部分を変更するとそれに合わせて表示内容も変わります。

 Laravelのルーティング登録では、URLに変数を埋め込むことができます。これを「ルートパラメータ」といい、ルーティングパターンに以下の記述をします。

[構文]ルートパラメータを使ったルーティングパターン
"/…/{パラメータ名}"

次のページ
HTTPメソッドごとのルーティング設定

この記事は参考になりましたか?

人気の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編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11370 2019/02/18 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー