Ethna > ドキュメント > 開発マニュアル > 遷移先定義、テンプレートの扱い方 > テンプレート定義省略時の命名規則を変更する
テンプレート定義省略時の命名規則を変更する
遷移先定義が省略された場合*1、以下のファイル名が暗黙のうちに決定されます。
- テンプレートが定義されたファイルのパス名
これらの命名規則は、Ethna_Controllerに定義されている以下のメソッドをオーバーライドすることで変更することが出来ます。
- テンプレートが定義されたファイルのパス名
- Ethna_Controller::getDefaultForwardPath($forward_name)
また,以下のメソッドも変更することを推奨します。
:テンプレートパス名から遷移名を取得する |Ethna_Controller::forwardPathToName($forward_path)
※forwardPathToNameは、コードをリバースエンジニアリングしたい場合に使います。
Ethna_Controllerでは、パス名は
return str_replace('_', '/', $forward_name) . '.' . $this->ext['tpl'];
つまり"foo_bar_hoge" -> "foo/bar/hoge.tpl"となります。 好みに応じて適宜オーバーライドしてください(それほどお勧めはしません)。
例えば、"foo_bar_hoge"というビュークラスに対応するファイル名を"foo_bar_hoge.tpl"としたい場合は、以下のアプリケーションのコントローラに以下のような定義を追加します。
/** * @access public * @param string $forward_name forward名 * @return string forwardパス名 */ function getDefaultForwardPath($forward_name) { return $forward_name . '.' . $this->ext['tpl']; }
そして、forwardPathToNameも変更しておきます。
/** * @access public * @param string $forward_path テンプレートパス名 * @return string 遷移名 */ function forwardPathToName($forward_path) { $forward_name = preg_replace('/^\/+/', '', $forward_path); $forward_name = preg_replace(sprintf('/\.%s$/', $this->getExt('tpl')), '', $forward_name); return $forward_name; }