質問のタイトルが非常に自由回答のように見えることは理解していますが、私はすでに主題について少し読んだり実験したりしており、独自の手続き型アプリを構築することに加えて、Cake を使用しています。私の目的は、手続き型アプリを CakePHP に引き継ぐことです。
アプリが行うこと (またはやりたいこと)
したがって、私はたくさんの を持っています。clients
各クライアントには 1 つ以上の がありaccounts
ます。それぞれaccount
にholdings
、特定の日付の値が格納されているものがあります。これはデータベース構造の例です
アイデアは、クライアント、アカウントなどの標準的な CRUD ページを用意することですが、たとえばクライアント アカウントの返品履歴とポートフォリオ統計を提供するなど、より洗練されたページも用意することです。(他にも詳細な情報が記載された表がありますが、簡単にするために、当面はこの問題から省略します)
私がしたこと
チュートリアルに従って、クライアントとアカウントのモデルを作成し、CakePHP でクライアントとアカウントのテーブルをリンク (関連付け?) することができました。また、クライアントとアカウントを取得できるコントローラーとビューを作成し、インデックス、ビュー、編集ビューを作成しました。
ここに私のモデルクラスがあります:
//Client.php
class Client extends AppModel {
public $hasMany = 'Account';
}
//Account.php
class Account extends AppModel {
public $belongsTo = 'Client';
public $hasMany = 'Holding';
}
//Holding.php
class Holding extends AppModel {
public $belongsTo = 'Account';
}
私が以前にしたこと
特定のクライアントのポートフォリオ リターンを表示するページを作成するとします。私が前回の (粗雑な) アプリで行ったことは、php ファイル (portfolio.php) を作成することだけでした。次に、未加工の SQL ステートメントを使用して、各月末にクライアントの保有額の合計をデータベースにクエリします。次に、ある月から次の月への値の変化率を計算する戻り値の配列をループします。
このデータは、html テーブルに表示でき、グラフなどに値をプロットすることもできます。
もちろん、これは単純化した例です。このページ/ビューは、ベンチマーク比較 (別のデータベース テーブルを介して)、シャープ レシオ、ボリューム、年率リターンなどの統計などの他の情報を紹介します。
私の質問
前のセクションと同様の機能を CakePHP でどのように実装しますか? 私が求めているビュー/ページは、MVC のイデオロギーに適合していないようです。計算に関係するロジックはどこに行くのでしょうか (たとえば、値の配列からの戻り値の計算など)?
この種のものが MVC/CakePHP でどのように実装されているかを説明できれば、非常に役に立ちます。
ブログのチュートリアルは非常に理にかなっていますが、それがより複雑なアプリケーションにどのように拡張されるかはまだわかりません。