URI ルーティング

Ziu にはURI ルーティングの機能が存在します。
URI ルーティング機能により、アクセスしたURLに対してURI部分を解析してアプリケーションフォルダ名の配下に対応する モジュール の処理を実行することができます。Ziu において モジュール とは、Logic-Prep-View のかたまりを指し、一般的なMVCフレームワークでの コントローラ から ビュー までの処理を意味します。

URI 解析パターン

本項では、コントローラ(Ziu でいうロジッククラス)を対象に解析パターンについて説明していきます。

URI が /item/list/purchaced/10/25 の場合、以下の順で解析されていきます。

優先順 item list purchaced 10 25
1 コントローラ名 メソッド名 第1引数 第2引数 第3引数
2 フォルダ名 コントローラ名 メソッド名 第1引数 第2引数

上階層より順にコントローラへマッピングが行われます。
該当するコントローラが見つからなかった場合は、404エラー処理が行われます。

解析例
ホストのトップとしてURI「/」にアクセス
優先順 コントローラ メソッド ファイル 実行処理
1 index index index.logic.php Index::index()

(注意) _conf/routes.php において _def_ が未指定の場合の動作です。
通常は、'_def_' => 'welcome' となっているので、コントローラは「Welcome」になります。

URI「/item」にアクセス
優先順 コントローラ メソッド ファイル 実行処理
1 item index item.logic.php Item::index()
2 item/index index item/index.logic.php Item_Index::index()
URI「/news/list」にアクセス
優先順 コントローラ メソッド ファイル 実行処理
1 news list news.logic.php News::list()
2 news/list index news/list.logic.php News_List::index()

URIIndex 自動補完について

URIが / で終わる場合、ルーティング機能でファイル名、又はメソッド名が index として自動補完されコントローラへマッピングを試みます。

補完例
補完前 URI 補完後 URI 実行ファイル 実行メソッド
/ /index index.logic.php Index::index()
/news /news/index news.logic.php News::index()
/news /news/index news/index.logic.php News_Index::index()

URI ルーティングとモジュールの基本動作

既に述べたように Ziu では、URI に対してURI ルーティング機能によるマッピング処理によりモジュールが実行されます。
URI によりモジュールが実行される」とは LPVワークフロー に沿った形で処理が進みます。

  1. Logic ロジッククラス
  2. Prep プレップクラス
  3. View ビューテンプレート

URI 解析パターンの項目では、コントローラ(Ziu でいうロジッククラス)を基準として説明をしました。
ここでモジュールの基本動作としてコントローラ(Logic)以外の PrepView に関してもURI ルーティング機能のマッピング処理が適応されます。

モジュールのLPVワークフローの基本動作例

URI : /item/detail

ワークフロー ファイル 実行処理
Logic item.logic.php Item::detail()
Prep item.prep.php Item_Prep::detail()
View item.view.php テンプレート読込み
Prep

プレップクラスは、ロジッククラス同様のクラス定義となります。
よって、URI ルーティングでマッピングされるロジッククラスと同名のプレップクラスと、さらに同じメソッドが対象になります。

View

ビューテンプレートは、テンプレートとしての扱いになります。
つまり、URI ルーティングでマッピングされるロジッククラスと同名のビューテンプレートが対象になります。
クラス定義であるロジッククラス/プレップクラスのように、メソッドに相当する部分はビューテンプレートには影響を与えません。

404エラー

ページが存在しないURLへアクセスを行った場合はデフォルトで「404.view.php」を返します。
404で表示するViewファイルは、「ルーティング設定」にて変更することが出来ます。

_conf/routes.php
'_404_' => 'http_status/404',