Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


apricot:usage:ja:controller

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
apricot:usage:ja:controller [2020/08/26 21:11]
y2sunlight [トランザクション]
apricot:usage:ja:controller [2020/09/03 13:46] (現在)
y2sunlight [Apricot コントローラ]
行 1: 行 1:
-> 編集中 
- 
----- 
- 
 ====== Apricot コントローラ ====== ====== Apricot コントローラ ======
  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-07-29//  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-07-29//
行 21: 行 17:
   * [[apricot:usage:ja:validation|Apricot バリデーション]]   * [[apricot:usage:ja:validation|Apricot バリデーション]]
   * [[apricot:usage:ja:provider|Apricot サービスプロバイダー]]   * [[apricot:usage:ja:provider|Apricot サービスプロバイダー]]
 +  * [[apricot:usage:ja:authentication|Apricot ユーザ認証]]
   * [[apricot:usage:ja:utility|Apricot ユーティリティ]]   * [[apricot:usage:ja:utility|Apricot ユーティリティ]]
  
行 385: 行 382:
 \\ \\
  
-==== トランザクション処理 ====+==== トランザクション処理 ====
  
 以下は、ユーザコントローラの update アクションの例です。 以下は、ユーザコントローラの update アクションの例です。
行 421: 行 418:
  
 アクションがしなければならないことは、モデルの例外を捕捉して、ApplicationException をスローすることだけです。フレームワークは ApplicationException またはそれを親に持つ例外のみを捕捉します。それ以外の例外は、集約エラーハンドラーによって補足されシステムエラーになります。即ち、フレームワークは、ApplicationException のみ前画面に戻すリダイレクトレスポンスを生成します。 アクションがしなければならないことは、モデルの例外を捕捉して、ApplicationException をスローすることだけです。フレームワークは ApplicationException またはそれを親に持つ例外のみを捕捉します。それ以外の例外は、集約エラーハンドラーによって補足されシステムエラーになります。即ち、フレームワークは、ApplicationException のみ前画面に戻すリダイレクトレスポンスを生成します。
 +
 +モデルは次の場合に ApplicationException をスローします:
 +
 +  * 楽観的ロック例外が発生した場合( ''OptimissticLockException'' )
 +  * 対象レコードが存在しない場合(レコード更新時および削除時)
 +
 +アクションでは、これ以外の例外が発生した場合は、パースエラーなどの ''Error'' を除き、''ApplicationException'' を生成してそれをスローすべきです。
 +
 +=== クエリーの例外処理 ===
 +
 +通常、トランザクションは更新系の処理で設定するするので、クエリーで発生した全ての例外は集約エラーハンドラで処理されエラー画面が表示されます。この状況を避けたい場合は、次の何れかの選択になるでしょう。
 +
 +  * クエリーのアクションにもトランザクションを設定する
 +  * アクション内のcatchブロックでエラーメッセージ付きの入力ページをレンダリングする
  
 \\ \\
  
apricot/usage/ja/controller.1598443897.txt.gz · 最終更新: 2020/08/26 21:11 by y2sunlight