Ground Sunlight

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

ユーザ用ツール

サイト用ツール


apricot:usage:ja:features

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
apricot:usage:ja:features [2020/09/19 10:21]
y2sunlight [コントローラ]
apricot:usage:ja:features [2020/09/22 16:37] (現在)
y2sunlight [モデル]
行 293: 行 293:
 Auto Wiring 機能で使用する引数には、一般的にモデルクラスやサービスクラスを指定します。ここでは、ユーザモデルをコンストラクター引数に指定し、それをメンバ変数に格納しています。 Auto Wiring 機能で使用する引数には、一般的にモデルクラスやサービスクラスを指定します。ここでは、ユーザモデルをコンストラクター引数に指定し、それをメンバ変数に格納しています。
  
-また、コンストラクタではコントローラのアクションに[[#インターセプター]]を登録したり、[[#トランザクション]]を適用したりしていますが、それらについては、以下の項を参照して下さい。+また、上のコンストラクタではコントローラのアクションに[[#インターセプター]]を登録したり、アクションを[[#トランザクション|トランザクション化]]していますが、それらについては、以下の項を参照して下さい。
  
 \\ \\
行 299: 行 299:
 ==== HTTP リクエストの取得 ==== ==== HTTP リクエストの取得 ====
  
-通常のフレームワークでは、CGIやPHP環境からアプリケーションに到達したすべてのデータ($_SERVER、$_GET、$_POST、$_FILES、$_SESSIONなどの変数)を1つのリクエストクラス(またはインターフェース)にカプセル化します。リクエストクラスでは、これらのデータに加え、フラッシュと呼ばれる、一度だけ保存されるセッション変数(次の画面の遷移のときまで保存される変数)もサポートされています。+通常のフレームワークでは、CGIやPHP環境からアプリケーションに到達したすべてのデータ($_SERVER、$_GET、$_POST、$_FILES、$_SESSIONなどの変数)を1つのリクエストクラスにカプセル化します。リクエストクラスでは、これらのデータに加え、フラッシュと呼ばれる、一度だけ保存されるセッション変数(次の画面の遷移のときまで保存される変数)もサポートされています。
  
 Apricotにはリクエストクラスがありません。その代わりに、個々の変数をカプセル化したクラスのシングルトンを持っています。リクエスト取得用に以下のシングルトンがあります: Apricotにはリクエストクラスがありません。その代わりに、個々の変数をカプセル化したクラスのシングルトンを持っています。リクエスト取得用に以下のシングルトンがあります:
行 468: 行 468:
 </code> </code>
  
-''<nowiki>$this->transactional()</nowiki>'' はアクショントランザクションを適用するコントローラクラスのメソッドです。上の例では insert、update そして deleteアクショントランザクションを適用しています。+''<nowiki>$this->transactional()</nowiki>'' はアクショントランザクションするコントローラクラスのメソッドです。上の例では insert、update そして deleteアクショントランザクションしています。
  
-Apricotは、アクションを呼び出す前にトランザクションを開始し、アクションが例外をスローしなかった場合、トランザクションが成功したものとみなして、そのトランザクションをコミットします。一方、アクションが ''ApplicationException'' 例外をスローした場合、Apricotは、それをキャッチしてエラーログを出力して、アクション代わりに前画面に戻るリダイレクトレスポンスをします。+Apricotは、アクションを呼び出す前にトランザクションを開始し、アクションが例外をスローしなかった場合、トランザクションが成功したものとみなして、そのトランザクションをコミットします。一方、アクションが ''ApplicationException'' 例外をスローした場合、Apricotは、それをキャッチしてエラーログを出力して、アクション代わって前画面に戻るリダイレクトレスポンスを生成します。
  
 \\ \\
行 476: 行 476:
 ==== モデル ==== ==== モデル ====
  
-Apricotの個々のモデルクラスは、''\App\Foundation\Model'' から継承して作りますが、このクラスはカスタマイズを前提としています。初期に実装されている ''Model'' クラスは ORMに [[https://github.com/j4mie/idiorm|Idiorm]] を使用し、以下のメソッドを実装しています。+Apricotの個々のモデルクラスは、''\App\Foundation\Model'' から継承して作りますが、このクラスはカスタマイズされることを前提としています。初期に実装されている ''Model'' クラスは ORMに [[https://github.com/j4mie/idiorm|Idiorm]] を使用し、以下のメソッドを実装しています。
  
   * findAll() --- 全件検索   * findAll() --- 全件検索
行 491: 行 491:
   * version_no (integer) --- バージョンNo(楽観的ロックで使用)   * version_no (integer) --- バージョンNo(楽観的ロックで使用)
  
-このように、初期実装されている ''Model'' クラスには幾つかの前提があるので、アプリケーションに合わせてカスタマイズまたは再作成して下さい。また、ORMも [[https://github.com/j4mie/idiorm|Idiorm]] 以外のものを使うことができます。+このように、初期実装されている ''Model'' クラスには幾つかの前提があるので、アプリケーションに合わせてカスタマイズまたは再作成した方が良かもしれません。また、ORMも [[https://github.com/j4mie/idiorm|Idiorm]] 以外のものを使うことができます。
  
 以下は、初期実装されている ''Model'' クラスを継承したユーザモデルの例です。個々のモデルクラスは、''\App\Models'' の下に配置されます。 以下は、初期実装されている ''Model'' クラスを継承したユーザモデルの例です。個々のモデルクラスは、''\App\Models'' の下に配置されます。
apricot/usage/ja/features.1600478514.txt.gz · 最終更新: 2020/09/19 10:21 by y2sunlight