このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
apricot:usage:ja:features [2020/09/18 10:19] y2sunlight [Apricot のアプリ(App)部分] |
apricot:usage:ja:features [2020/09/22 16:37] y2sunlight [モデル] |
||
---|---|---|---|
行 88: | 行 88: | ||
===== ボイラープレートとシングルトン ===== | ===== ボイラープレートとシングルトン ===== | ||
- | Apricotでは、コントローラ、ミドルウェアそしてテンプレートの中でフレームワークを呼び出す簡便な方法として、ボイラープレートとシングルトンを使用します。 | + | Apricotでは、コントローラ、ミドルウェアそしてテンプレートの中でフレームワークを呼び出す簡便な方法として、ボイラープレートとシングルトンを提供しています。 |
- | ボイラープレートは良く使うフレームワークのコードパターンを関数として使用できるようにしたヘルパーの集まりです。例えば: | + | ボイラープレートとは良く使うフレームワークのコードパターンを関数として使用できるようにしたヘルパー関数です。例えば: |
<code php> | <code php> | ||
行 116: | 行 116: | ||
===== Apricotの概要 ===== | ===== Apricotの概要 ===== | ||
- | Apricotの概要を知る為に、クライアントがリクエストを行ってからApricotがレスポンスを返すまでを、ユーザ登録アプリケーションを例に説明します。 | + | Apricotの概要を知る為に、クライアントのリクエストを受け取ってからApricotがレスポンスを返すまでを、ユーザ登録アプリケーションを例に説明します。 |
\\ | \\ | ||
行 235: | 行 235: | ||
==== コントローラ ==== | ==== コントローラ ==== | ||
- | ルーティングによって設定されているエンドポイントがアクセスされ、ミドルウェアによってレスポンスが生成されなかった場合、Apricotはコントローラ@アクションをインボークします。コントローラの全ての具象クラスはApricotのアプリ部分の '' | + | ルーティングによって設定されているエンドポイントがアクセスされ、ミドルウェアによってレスポンスが生成されなかった場合、Apricotはコントローラ@アクションをインボークします。コントローラの全ての具象クラスはApricotのアプリ部分の '' |
行 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: | ||
</ | </ | ||
- | ''< | + | ''< |
- | Apricotは、アクションを呼び出す前にトランザクションを開始し、アクションが例外をスローしなかった場合、トランザクションが成功したものとみなして、そのトランザクションをコミットします。一方、アクションが '' | + | Apricotは、アクションを呼び出す前にトランザクションを開始し、アクションが例外をスローしなかった場合、トランザクションが成功したものとみなして、そのトランザクションをコミットします。一方、アクションが '' |
\\ | \\ | ||
行 476: | 行 476: | ||
==== モデル ==== | ==== モデル ==== | ||
- | Apricotの個々のモデルクラスは、'' | + | Apricotの個々のモデルクラスは、'' |
* findAll() --- 全件検索 | * findAll() --- 全件検索 | ||
行 491: | 行 491: | ||
* version_no (integer) --- バージョンNo(楽観的ロックで使用) | * version_no (integer) --- バージョンNo(楽観的ロックで使用) | ||
- | このように、初期実装されている '' | + | このように、初期実装されている '' |
以下は、初期実装されている '' | 以下は、初期実装されている '' |