章: 第6章: 実践運用と成長
機能が増えるたびに if ($url === '/...') が増え続けていませんか?ルーティングを整理すると、コードの見通しが一気に良くなります。
問題と解決策
URLごとに実行する処理を直接 if / switch で分岐していくと、機能が増えるにつれてエントリポイントのファイルが肥大化します。どのURLがどの処理を呼んでいるかがすぐに把握できなくなり、修正時に別の処理に影響が出るリスクも高まります。
ルーティングとは「URLと処理(コントローラ)の対応を管理する仕組み」です。ルーティングテーブルをひとつの場所にまとめることで、エントリポイントが整理でき、新機能追加時の影響範囲が明確になります。
ルーティング実装の比較
| 実装方法 | 特徴 | 推奨シーン |
| if/switch による直接分岐 | シンプルだが管理しにくい | 超小規模(学習用) |
| 配列ルーティング | シンプルなテーブル管理 | 小規模プロジェクト |
| フレームワークのルーター(Laravel等) | 宣言的・ミドルウェア対応 | ✅ 実務では推奨 |
チェックポイント: URLにGETパラメータ以外の情報(例:
/users/123の123)を含む場合、どう取り出しますか?正規表現マッチで動的セグメントを抽出する必要があります。フレームワークはこれを自動で行います。
コードサンプル
<?php
$path = $_SERVER['REQUEST_URI'];
if ($path === '/posts') { echo '記事一覧'; }
まとめ & 次のステップ
- ルーティングはURLと処理の対応を一箇所にまとめる仕組みです
$_SERVER['REQUEST_URI']で現在のURLパスを取得できます- 動的URLセグメント(
/users/{id})は正規表現で抽出します - 実務ではLaravelなどフレームワークのルーターを使うことがほとんどです
次回は リファクタリング — 動作を変えずに内部品質を磨く技法を学びます。