Blog

ルーティングのグループ化

ルーティングのグループ化

Laravel のシステム開発でたくさんのことを学んでいます。

少し前には知らなかったことも、今では知っている。
明日の自分、来週の自分はもっと成長していることだろうとワクワクしています。

ルーティング

さて、システム開発において、大きなシステムになればなるほど、
〇〇系画面、△△ 系画面、✖✖ 系画面・・・・
と画面は膨大に増えていきます。

そうすると、ルーティングが

web.php

Route::get("/〇〇", "〇〇Controller@index");
Route::get("/〇〇/create", "〇〇Controller@create");
Route::post("/〇〇/create", "〇〇Controller@store");
:
:

と、どんどん長くなり、何がなんだか分からなくなりますし、
複数行に渡って記述していると、ミスだって増えます。

何よりひとつひとつ 何のための画面かを考えながら読まなければならなくなります。

私も、初めは以下のようにコメントで区切ってました。

web.php

// 〇〇系画面
Route::get("/〇〇", "〇〇Controller@index");
Route::get("/〇〇/create", "〇〇Controller@create");
Route::post("/〇〇/create", "〇〇Controller@store");
:
:
// △△系画面
Route::get("/△△", "△△Controller@index");
:
:

というのも、まとめられることを知らなかったからでした。

Group

グループ化するのだから、Group
そのままですね!

早速まとめてみます。

web.php

// 〇〇系画面
Route::group(["prefix"=> "〇〇"], function() {
   Route::get("/", "〇〇Controller@index");

   Route::get("/create", "〇〇Controller@create");
   Route::post("/create", "〇〇Controller@store");
   :
   :
});

// △△系画面
Route::group(["prefix"=> "△△"], function() {
   Route::get("/", "△△Controller@index");
   :
   :

すこし見やすくなりました。
しかし、落とし穴がありました。

Group は何をまとめているかを考えないといけないのです。

そのため、書いた本人は分かっても
他の人に見せるにはしんどいコードになっていました。

どないすればええんや・・・。

prefix

なんだ、prefix でグループ化できるやつがあるじゃないか。
これなら何でまとめているグループかすぐに判断できるので、こちらの方が適切です。

web.php

// 〇〇系画面
Route::prefix("〇〇")->group(function() {
    Route::get("/", "〇〇Controller@index");

    Route::get("/create", "〇〇Controller@create");
    Route::post("/create", "〇〇Controller@store");
    :
    :
 });

// △△系画面
Route::prefix("△△")->group(function() {
   Route::get("/", "△△Controller@index");
   :
   :

共通部分をまとめると、スッキリして見やすくなります。
これからも読み手のことも考えて、コードを書いていけたらと思います。


やはり、ただ羅列するとなると見辛くて仕方ないですね。

適度にまとめて、どういうものの塊なのかが分かるように書くと
より理解しやすく、読みやすくなります。

実際、投稿している記事だって見出しでまとめてますもんね。

さて、今回はコードをまとめるという話ですね。
共通項はまとめる・・・なんだか数学の因数分解を思い出しました。

最後まで読んでいただき、ありがとうございました。

MeisterGuild(マイスター・ギルド)広報

最先端技術のMEISTERを目指し、お互い切磋琢磨するGUILD、になりたい株式会社マイスター・ギルドです。Webシステム/サービス開発、スマホアプリ開発、AR/VR/MR開発など、さまざまな情報を発信します。

Related Entry