ここは以前の ethna.jp サイトを表示したものです。ここにあるドキュメントはバージョン2.6以降更新されません。
最新のドキュメントは 現在のethna.jp を閲覧してください。現ドキュメントが整備されるまでは、ここを閲覧してください。
Ethna > ドキュメント > 開発マニュアル > 遷移先定義、テンプレートの扱い方 > ビュー定義省略時の命名規則を変更する

ビュー定義省略時の命名規則を変更する

遷移先定義が省略された場合*1、以下の4つのファイル名またはクラス名が暗黙のうちに決定されます。

  • ビュークラスが定義されたファイルのパス名
  • ビュークラス名

これらの命名規則は、Ethna_Controllerに定義されている以下のメソッドをオーバーライドすることで変更することが出来ます。

ビュークラスが定義されたファイルのパス名
Ethna_Controller::getDefaultViewPath($forward_name, $fallback)
ビュークラス名
Ethna_Controller::getDefaultViewClass($forward_name, $fallback)

Ethna_Controllerでは、パス名は

$default_path = preg_replace('/_(.)/e', "'/' . strtoupper('\$1')", ucfirst($forward_name)) . '.' . $this->getExt('php');

つまり"foo_bar_hoge" -> "Foo/Bar/Hoge.php"となり、ビュークラス名は

$postfix = preg_replace('/_(.)/e', "strtoupper('\$1')", ucfirst($forward_name));
...
$r = sprintf("%s_View_%s", $this->getAppId(), $postfix);

となります。好みに応じて適宜オーバーライドしてください(それほどお勧めはしません)。

例えば、"foo_bar_hoge"というビュークラスに対応するファイル名を"foo_bar_hoge.php"にして、遷移名を"foo_bar_hoge_view"としたい場合は、以下のアプリケーションのコントローラに以下のような定義を追加します。

Sample_Controller.php:

/**
 *  遷移名に対応するビューパス名が省略された場合のデフォルトパス名を返す
 *
 *  @access public
 *  @param  string  $forward_name    遷移名
 *  @param  bool    $fallback       クライアント種別によるfallback on/off
 *  @return string  ビュークラスが定義されるスクリプトのパス名
 */
function getDefaultViewPath($forward_name, $fallback = true)
{
    return $forward_name . ".php";
}
/**
 *  遷移名に対応するビュークラス名が省略された場合のデフォルトクラス名を返す
 *
 *  @access public
 *  @param  string  $forward_name    遷移名
 *  @param  bool    $fallback       クライアント種別によるfallback on/off
 *  @return string  ビュークラス名
 */
function getDefaultViewClass($forward_name, $fallback = true)
{
    return $forward_name . "_view";
}

なお2番目の引数$fallbackは、現在アクティブなクライアントタイプ(PCブラウザ、i-mode、SOAP、etc...)に応じてデフォルト値を変更した場合等に使用しますが、とりあえず無視して頂いてOKです。