UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#211 PHPのルーティングについて

記入日:2023-08-07 編集日:2023-08-07

PHPのルーティングについて解説をしてみようと思います。

この記事を読むと(約5分)
PHPのルーティングについてイメージできます。

PHPのルーティング

ルーティングとは、WebアプリケーションのURLを処理する方法を指定するプロセスです。特定のURLに対して、どのコントローラー(またはページ)とアクション(処理)を実行するかを決定するために使用されます。PHPの場合、ルーティングを実装するためにいくつかの方法がありますが、主なアプローチとしては以下の2つがあります。

1. 手動ルーティング(手動マッピング):
これは、独自にURLと処理の関連付けを行う方法です。基本的に、特定のURLパターンを定義し、それに対応するコントローラーとアクションを手動で指定します。以下は、簡単な手動ルーティングの例です。

$url = $_SERVER['REQUEST_URI'];

if ($url === '/') {
  // ホームページ
  require 'controllers/home.php';
  $controller = new HomeController();
  $controller->index();
} elseif ($url === '/about') {
  // Aboutページ
  require 'controllers/about.php';
  $controller = new AboutController();
  $controller->index();
} else {
  // 404ページ
  require 'controllers/404.php';
  $controller = new NotFoundController();
  $controller->index();
}

この例では、`index.php` が全てのリクエストを受け取り、URLに応じて適切なコントローラーとアクションを呼び出しています。ただし、この方法ではルーティングの手動管理が必要で、アプリケーションが成長するにつれて複雑になる可能性があります。

2. フレームワークのルーティング機能の利用:
多くのPHPフレームワーク(例:Laravel、Symfony、CodeIgniterなど)では、ルーティングの機能が組み込まれています。これらのフレームワークは、より効率的で柔軟なルーティングを提供します。

Laravelの例を見てみましょう:

// ホームページへのルート
// '/' にアクセスした場合は HomeController の index メソッドを実行
Route::get('/', 'HomeController@index');

// Aboutページへのルート
// '/about' にアクセスした場合は AboutController の index メソッドを実行
Route::get('/about', 'AboutController@index'); 

ここでは、URLパターンとコントローラーのアクションをフレームワークが自動的に関連付けています。これにより、手動ルーティングよりもコードの見通しを良くし、保守性を高めることができます。

フレームワークを使うか手動でルーティングを行うかは、プロジェクトの規模や要件に応じて選択する必要があります。小規模なプロジェクトでは手動ルーティングが適しているかもしれませんが、大規模なアプリケーションではフレームワークを利用する方が効果的です。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。