トップページ > 1. ドキュメント > 1.2. CharcoalPHPの基本 > 1.2.1. 基本知識 > URL構造

URL構造

フロントコントローラ

CharcoalPHPはクライアントからのリクエストをすべて「index.php(名前は自由です)」という1つのPHPスクリプトで受け取ります。一般的にこのような構造を「フロントコントローラ」といいます。

リクエスト時のパラメータとプロシージャ

CharcoalPHPでは、リクエスト時の典型的なURLは以下のような構造を取ります。

http://(フロントコントローラのURI)/index.php?proc=(プロシージャパス)&var1=value1&var2=value2….

ただし、多くのWebサーバーでは「index.php」の部分は省略可能です。

var1, var2, …はCGI等でおなじみのクエリー文字列です。CharcoalPHP特有の構造として、「proc=(プロシージャパス)」という形式のパス指定が必要になります。このパスはメインタスクの設置してある場所を特定するもので、「index@:system:login:do_login」のような形式で指定します。このような形式のことをCharcoalPHPでは「オブジェクト・パス」といいます。オブジェクト・パスはコンポーネントの指定などあらゆる場所で使用されます。

詳しくは「オブジェクト・パスについて」をご覧ください。

上記のURLで起動される一連の処理のことを「プロシージャ」といいます。上記で「proc」パラメータの値はプロシージャのパスを指定するものなので、「プロシージャパス」といいます。

フォーム等からパラメータを受け取る

CharcoalPHPでクライアント等からパラメータを受け取る場合、上述のようにURLにパラメータをセットしてリクエストを行うことで、簡単にパラメータを渡すことができます。サーバに設置される

http://(フロントコントローラのURI)/index.php?proc=(プロシージャパス)&var1=value1&var2=value2….

このようなURLでリクエストが発生した場合、「プロシージャパス」で指定されたタスク(多くの場合、複数です)で以下のようにパラメータを取得できます。

CharcoalPHPではデフォルトではPOSTパラメータとGETパラメータの区別をしませんので、フォームから送られてきた値も上記と同じコードで取得できます。

URLの構造をカスタマイズする(スマートURL)

CharcoalPHPでは「リクエスト時のパラメータ」で紹介したURLの形式のほか、ルーティングルールを定義することで「http://mydomain/documents/title/2」のような「短くて分かりやすいURL(スマートURL)」にも対応できます。ただし、お使いのWebサーバでmod_rewriteモジュールが使用可能でなければなりません。

ルーティングルールについては、「ルーティングルールについて」をご覧ください。

Pocket

Comments are closed.