Skip to content

performの戻り値の仕様について

DQNEO edited this page Apr 5, 2012 · 2 revisions

performまわりの各種メソッドの仕様について整理してみました。

問題点

  • Ethna_ActionClass::performの戻り値の仕様が不自然。
    • nullで処理終了。
    • falseの仕様が記載なし(実装上はnullと同じ扱い)
  • Ethna_Backend::performの戻り値の仕様が不明瞭
    • エラー時はEthna_Errorを返すと書いてあるが、Controllerがそれに対応してない。
    • ActionクラスがEthna_Errorを返す仕様になっていないので、整合性がとれていない。

提案

下記のようにすれば、一貫性があってわかりやすいのではないでしょうか?

  • Ethna_ActionClass::performの戻り値
    • falseで処理終了
    • nullでデフォルトビュー(アクション名と同名のビュー)に遷移
  • Ethna_Backend::performの戻り値
    • falseで処理終了
    • nullでデフォルトビュー(アクション名と同名のビュー)に遷移

理由

http://www.ethna.jp/ethna-document-dev_guide-app-static.html

例えば静的ページを作るときは上記のようにしますが、

return 'login'という部分がDRYではありません。 return nullと書けるべき、というかperformを省略できるべきだと思います。

その方が、「アクションクラスは何もしない」ということが明確に表現できるのではないでしょうか。

現行仕様の調査結果(Ethna2.5)

Ethna_ActionClass

  • authenticate
    • false:処理終了
    • null:次へ進む
    • string:ビューへ遷移
  • prepare
    • false:処理終了
    • null:次へ進む
    • string:ビューへ遷移
  • perform
    • false:仕様未記載(実装上はnullと同じ)
    • null:遷移しない
    • string:ビューへ遷移

Ethna_Backend

  • perform
    • string:ビューへ遷移
    • null:処理終了
    • Ethna_Error:エラー