【PHP/Laravel】アプリ/ページが増えてきたときの、ルーティング分割方法
| 更新: 2024/09/25 | 1705文字
今回は、フレームワークLaravelで、ルーティングを分割してみます。1つのLaravelで複数の機能・ページを作るとルーティングが増えていくので、機能ごとに分割すると、メンテナンス性が高まります。正統派な方法と、サクッとやれる方法の2種類ご紹介。
目次
ルーティング分割したほうが良い場合~アプリやページが増えてきてごちゃごちゃ
管理人がローカルxamppで操作しているLaravelのルーティングです。通常ページ・rest-api取得ページ・メールフォームときて、データベース操作まで作ったんですが、『このままいろいろ作ったら、routes/web.phpがごちゃごちゃになってまずい』みたいな考えが生まれました。
『機能ごとルーティングも分割』ができると、メンテナンス性が高くなるのかなという感じです。
ルーティング分割方法1~ルーティングファイルをサービスプロバイダに登録
qiita.comにはLaravelの記事もいっぱいあるんですけど、探したらありましたね~。ルーティングファイルをサービスプロバイダに登録という方法です。管理人がやった方法より、本格的な感じがします。
該当のサービスプロバイダは『app/Providers/RouteServiceProvider.php』にあります。prefix,middlewareや名前空間、追加したルーティングのパスとかを登録する形のようです。
[Laravel]ルーティングファイルを分割して管理する
https://qiita.com/hiro5963/items/5e533fe014f29f636a3d
ルーティング分割方法2~分けたルーティングファイルをrequire
やりかた
管理人はLaravelでデータベース操作するアプリを作っていて、dbtest01というルーティングで使用していました。それ関連をまとめるためにまず、routes内に『web_dbtest01route.php』というファイルを用意しました。
このファイルの中身は、こんな感じでルーティングを設定してあります。表示するときはメソッド『get』、データベース更新・削除などの関数を使うときはメソッド『post』というようになっています。
あとは、単純にroutes/web.php内でrequire。includeでも動くけど、マニュアルによると『includeはファイルアクセス不可時に E_WARNING』『requireは E_ERRORでスクリプト停止』のような違いがあります。
function.include(PHPマニュアル)
https://www.php.net/manual/ja/function.include.php
表示確認
では表示確認。localhost/laravel/public/dbtest01にアクセスしたところ、データベースに登録しておいた、ダミーのユーザーデータが表示されたので、ルーティングは機能しています。
表示の他、データベース追加などもokでした。
あとがき・まとめ
- Laravelのページやアプリが増えてきたときは、ルーティングを分割できる
- ルーティングファイルをサービスプロバイダに登録するほか、require/includeしても動く
まとめると、こんなところでしょうか。ラクなのはrequireですが、どちらを使うかは会社コーディング規約や案件のメンバーの動きによるかと思います。 (他のメンバーがサービスプロバイダでやっていた場合は、合わせたほうがバラつきが無い。追加ルーティングを見るとき、サービスプロバイダを見に行くなどの可能性もある。)
とりあえず管理人も、両方の方法を押さえておきます。
【カテゴリ】- Laravel
【タグ】- Laravel, PHP