Zend_Dojo各機能の紹介
冒頭で述べたとおり、今回はZend_Dojoの機能のうち、ビューヘルパの機能とZend_Dojo_Dataについて説明します(Dijitsについては次回取り上げる予定です)。
ビューヘルパ
リスト3・4の例で見たとおり、Zend_Dojoを利用するにはZend_Dojoのビューヘルパを有効にします。リスト3ではZend_Dojoの静的メソッドenableView
を利用しましたが、これは内部的には、Zend_ViewのaddHelperPath
メソッドでZend_Dojoのビューヘルパを登録している処理を行っています(リスト5)。
//Zend_Dojoのビューヘルパを有効にする Zend_Dojo::enableView($view); //次の記述と同じ意味 $view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper');
このビューヘルパを登録すると、Zend_Viewのインスタンスにいくつかメソッドが追加され、さらにdojoという名前のプレースホルダが追加されます。このdojoプレースホルダのメソッドを利用してZend_Dojoの、ひいてはDojo Toolkitの設定を行います。
リスト3の例ではDojo Toolkitの配置先(setLocalPath
メソッド)とデバッグに関するオプションの設定(setDjConfigOption
メソッド)を行いました。
ここで、dojoプレースホルダのメソッドのうち、主なものを紹介します:
メソッド名 | 引数 | 説明 |
isEnabled | (なし) | Dojo Toolkitが有効になっているかを調べる。 |
requireModule | $module | Dojo Toolkitのモジュール$moduleを利用するように指定する。 |
setCdnBase | $url | CDNの場所を指定するURLの先頭。通常はZend_Dojo::CDN_BASE_AOLかZend_Dojo::CDN_BASE_GOOGLEにする。 |
setCdnVersion | $version | 利用するDojo Toolkitのバージョン番号。$versionは省略可能で初期値はnullで、その場合は1.2.0が利用される(Zend Framework1.7.0の場合)。 |
setCdnDojoPath | $path | CDNの場所を指定するURLの末尾。通常はZend_Dojo::CDN_DOJO_PATH_AOLかZend_Dojo::CDN_DOJO_PATH_GOOGLEを指定する。 |
setLocalPath | $path | 自サーバでDojo Toolkitを提供する場合に利用。dojo.jsへのパスを指定する。 |
setDjConfigOption | $option, $value | Dojo Toolkitのオプション$optionに値$valueを指定する。 |
setDjConfig | $config | Dojo Toolkitのオプションをまとめて指定する。$configは配列で、各要素は'オプション名'=>'値'とする。 |
addStylesheetModule | $module | $moduleという名前のスタイルシートを利用するように指定する。 |
addStylesheet | $path | 利用するスタイルシートファイルを指定する。 |
addOnLoad | $callback | ページが読み込まれた際(onLoad)に実行する関数を指定する。 |
このうち、Cdnが名前に入っているメソッドは、コンテンツデリバリネットワーク(CDN)を利用してDojo Toolkitを利用するための設定を行うために利用します。CDNはコンテンツ配信のために最適化されたネットワークのことで、サイズの大きいコンテンツを自前で持つかわりにこれらのネットワークに持たせることで、自前のサーバの負荷を下げることができます。
ここまではDojo Toolkitを自サーバ上に展開する前提で説明を行いましたが、AOLやGoogleが提供しているCDN上にあるDojo Toolkitを利用することも可能です。例えば、AOLが提供するCDNにあるバージョン1.2.0のDojo Toolkitを利用したい場合には、リスト6のように記述します。
$dojo = $view->dojo(); //ローカルにDojo Toolkitを持っている場合 //$dojo->setLocalPath('/js/dojo/dojo/dojo.js'); //CDNを利用する場合 $dojo->setCdnBase(Zend_Dojo::CDN_BASE_AOL); $dojo->setCdnVersion('1.2.0'); $dojo->setCdnDojoPath(Zend_Dojo::CDN_DOJO_PATH_AOL);
次に、dojo.data互換のあるデータ形式の作成と操作を行うためのクラスZend_Dojo_Data
について説明します。