0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rails学習者向けのLaravelAdvent Calendar 2024

Day 3

Laravelのルーティング入門:Railsのroutes.rbとの違い

Posted at

はじめに

プログラミングを学び始めたばかりの方にとって、Webアプリケーションフレームワークのルーティングは重要な基礎です。本記事では、PHPの代表的なフレームワークであるLaravelのルーティングの基本を解説しながら、Ruby on Railsのroutes.rbとの違いにフォーカスして説明します。

1. Laravelのルーティングとは?

Laravelにおけるルーティングは、アプリケーションのURLとコントローラーの処理を紐づける仕組みです。ルーティングはroutes/web.phpファイルに定義します。以下は、基本的なルーティングの例です。

php
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

主な特徴:

メソッドベースRoute::getRoute::postなどHTTPメソッドごとにルートを定義。
クロージャ対応:簡単な処理なら匿名関数(クロージャ)内に直接記述可能。
グループ化:同じURLパターンやミドルウェアを使うルートをまとめられる。

公式ドキュメント:Routing - Laravel

クロージャ
関数内で定義した特定の変数を参照し続けることで
関数が状態を持てる仕組みを指す。
これにより、定義した変数を外側のスコープでも使用できる。
詳しくは以下を参照。

クロージャとは

2. Railsのroutes.rbとの違い

Railsでは、config/routes.rbファイルを使ってルーティングを定義します。以下にRailsの基本的なルート定義例を示します。

routes.rb
Rails.application.routes.draw do
  root "pages#home"
  get "/about", to: "pages#about"
end

Laravelとの主な違い:

特徴 Laravel Rails
ルート定義の方法 HTTPメソッドごとに個別定義 to:オプションで個別にアクション指定
クロージャ クロージャで直接処理可能 コントローラーを介さない処理は非推奨
ルートグループ 明示的にRoute::groupを使用 スコープや名前空間でまとめる

3. 具体的な比較例

LaravelでのCRUDルーティング

Laravelでは、Route::resourceを使うことでCRUDルートを生成できます。

php
Route::resource('articles', ArticleController::class);

上記の1行で、以下のようなルートが自動生成されます。

HTTPメソッド URL アクション
GET /articles index
GET /articles/create create
POST /articles store
GET /articles/{article} show
GET /articles/{article}/edit edit
PUT/PATCH /articles/{article} update
DELETE /articles/{article} destroy

RailsでのCRUDルーティング

Railsでは、resourcesメソッドを使用します。

resources :articles

同様に、CRUD用のルートが自動生成されます。

HTTPメソッド URL アクション
GET /articles index
GET /articles/new new
POST /articles create
GET /articles/id show
GET /articles/id/edit edit
PUT/PATCH /articles/id update
DELETE /articles/id destroy

4. ルーティングのベストプラクティス

公式ドキュメントを参照:LaravelやRailsは頻繁にアップデートされます。最新の公式情報を確認しましょう。
RESTful設計を意識:リソースに基づいた設計を心がけると、ルート管理が簡単になります。
ルートファイルを整理:グループ化や名前空間を活用して見通しの良いルーティングを目指しましょう。

5. まとめ

LaravelとRailsのルーティングはどちらも強力で柔軟ですが、それぞれに独自の特徴があります。両者を比較しながら使い方を学ぶことで、フレームワークの設計思想や特徴を深く理解できるでしょう。

参考記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?