2011-07-25 5 views
1

質問:私は知っている必要が何をすべきかは、私がATK4に異なるデータベース(MongoDBの)を組み込むに取り掛かるべきかありますか? 具体的に:アジャイルツールキット4と異なるデータベース(MongoDBの)を実装

  1. 私はデータベースへの接続を作成し、すべてのモデルでCRUDを持っているか、私はライブラリに抽象化するべきでしょうか?
  2. 私はそれをモデルに抽象化すれば、モデルの中からメソッドをどのように呼び出すことができますか?

いくつかの注意:.NETで

  1. は、明白な答えは、私はモンゴとのasp.net MVCを使用して、私のプロジェクトでやっている、それは抽象的にですが、私は合計noobのですそれはPHPになると、どのような慣習であるかわからない。 ATK4が同じようであれば
  2. CodeIgniterのは、それが本当の簡単LIBSをロードすることができ、私は思ったんだけど?
  3. 私はすべてのドキュメントを読み、ベータ版のドキュメントのチュートリアルでスキミングしました。

私についてのいくつかのものは:私は、PHPでの総noobのです。私の主なコーディングフレームワークは.NETです(両方ともvb & c#(winformsとasp(両方ともwebformsとmvc)))

私はCodeIgniterで遊んできました。私の同僚が私にATK4をチェックするように頼んだので、今まで見たことに感心しています。私は私のプロジェクトのためATK4を採用するつもりならば

はしかし、私はMongoDBのを使用できるようにする必要があります。私はこれを明確にしましょう:誰かが私のためにコードを書くことを求めているわけではありません。私はphpとatk4の規約についていくつかのガイダンスが必要です。これらのことに関するウェブサイト上のドキュメントは、現時点ではまばらです(存在しない)。

答えて

0

次の2つの選択肢、抽象化の両方を持っています。最初に、グリッドや他のビューが自動的に認識するモデルとコントローラを作成します。次に、MongoDBからデータを取得し、静的テーブルに挿入する必要があります。

モンゴ対応のビュー

このアプローチでは、モデルがどのように動作するかを知っている必要があります。特に、MVCGrid、setController、setModel、mvc/Controller.phpを理解する必要があります。その後、独自のコントローラを作成する必要があります。次に、コントローラを使用するAbstractView :: setModel()のコピーが必要になります。これはMongoDBからデータをフェッチする方法を正しく認識します。

また、あなたはおそらく適切にデータをストリーミングするためにグリッド(またはMVCGrid)を拡張する必要があります。あなたがこれを行った後

、あなたはこれを行うことができます。

ます$ form-> setMongoModel( 'mymodelという') - > loaddataの(123);

(あなたはGITのバージョンを使用している場合は、あなたが実際にこの方法で注入することができます。このアプローチでは https://github.com/atk4/atk4-testsuite/blob/master/page/core.php#L108

半自動アプローチ

をあなた自身をコントローラあなたのMongoDBからデータをロードする必要があるでしょうし、グリッドやフォームにグリッドやフォームを入力することができます。グリッドとフォームの両方で静的なデータを処理することができます。この場合、次のようなものが必要になります:

$c=$this->add('MongoController'); 
$data=$c->load($my_model,123); 
$grid->setStaticSource($data); 
あなたの他のquestinos

CodeIgniterのにの

回答は素晴らしいフレームワークですが、それは、グローバルオブジェクトをインスタンス化します。同じライブラリの2つのインスタンスが必要になることはほとんどありません。 Agile Toolkitはそれを許可し、コントローラはしばしばそのように使用されます。結果として、ATK4オブジェクトが互いにバインドしている間に、CIのデータ管理をかなり担当しています。これらのライブラリのアプローチ間の主な違いです。 CIで

図書館:ATK4で

$this->load->library('MyLib'); 

は次のようになります。

$this->api->add('MyLib'); 

をそれはあなたのライブラリ内

$this->owner->mylib=$this; 

を配置するのが一般的なので、それはあなたのために簡単ですそれらにアクセスする。

PHP開発の仕組みがわからなくても、たいていの場合、HTMLテンプレートに非常に頼っています。

関連する問題