ExtJSおよびZend Frameworkでのプログラミング方法

ご存知のように、Zend Frameworkの最新バージョンにはdojo jsライブラリが含まれています。 しかし、それにもかかわらず、私は仕事のためにZend Framework + Ext JSバンドルを選択しました。

Zend Frameworkが選ばれる理由-MVCの原則を完全に実装し、十分に文書化されており、多くの便利なライブラリがあり、Zendによってサポートされています。 はい、欠点があります-最速ではなく、サードパーティの開発者からいくつかのモジュールを取得する必要があります。

ExtJSのドキュメントも充実しており、多くのコンポーネントがあり、ウィンドウモデルが適切に実装されているため、グリッドは理想的なものになっています。

これまでのところ、承認、インターフェイスの構築、スクリプトのロードなどの詳細については説明しません。

ここでは、すべてのニュアンスに関する本を書くことができます。

TreePanel、GridPanel、Form Panelの3つのコンポーネントについて簡単に説明します。



画像

TreePanelは、主にデータのカテゴリを表示するために使用します。 カテゴリにはツリー構造があります。 ネストされたセットモデルを使用してツリーを作成します。

TreePanelで動作するコントローラーを作成します。 簡略化された形式では、次のようになります。

class TreeController extends Zend_Controller_Action {



public function init()

{

if ($this->getRequest()->isXmlHttpRequest()) {

Zend_Controller_Action_HelperBroker::removeHelper('viewRenderer');

}

}



public function indexAction()

{

$parent = $this->getRequest()->getParam('node', 0);

$table = $this->getRequest()->getParam('table', 0);

Zend_Loader::loadClass('Tree');

$tree = new Content();

$res = $tree->getItems($parent, $classname);

echo $res;

}



}









AJAXでZend Frameworkを使用する際のハイライト:

リクエストがAJAXの場合-ビューアーの使用を削除します。

if ($this->getRequest()->isXmlHttpRequest()) {

Zend_Controller_Action_HelperBroker::removeHelper('viewRenderer');

}







ツリーモデルを作成します。 getItems($ parent、$ table)メソッドでは、parent = $ parentのデータの$ tableからの資本の選択。 JSON形式で配列を返します(もちろん、XMLは可能です)。

データ形式は次のようなものです。

[{"text":"category1","id":"1"},{"text":"category2","id":"2"},{"text":"category3","id":"3"}}]









さらに、ExtJSを使用します。

パネルにツリーを配置します。

var categoriesTree = new Ext.tree.TreePanel({

id:'tree',

....

loader: new Ext.tree.TreeLoader({

dataUrl: '/tree/',

baseParams: {

table: 'categories'

}

})

});



var rootNode = new Ext.tree.AsyncTreeNode( {

text: 'Root',

draggable:false,

id: 'root',

expanded:true

})

categoriesTree.setRootNode(rootNode);

rootNode.expand();









おおよそのコードです。 ページをロードしてツリーをレンダリングすると、ルートブランチがロードされます。 必要に応じて、プラスをクリックすると-残りがロードされます。

ロードに加えて、ノードの追加/削除、ブランチからブランチへのドラッグを実装しました。



同様に、GridControllerコントローラーとペアになったGridPanelテーブルを実装しました。 データの表示、順序の編集、削除に使用されます。

FormPanel + FormControllerを使用して、新しいデータを追加して編集します。

トピックが興味深い場合は、引き続き説明します。



All Articles