Zend Framework入門(17):
ウィジェットDijitをPHPアプリで利用する - Zend_Dojo(中編)-
Zend Frameworkによる実践的なPHPアプリケーション開発 17
ダウンロード サンプルファイル (4.7 KB)
DijitのためのZend_Dojoの設定
まずは、アクションコントローラで行う必要のある処理について説明します。ここでは、Zend_Dojoのビューヘルパを有効にする処理と、有効にしたZend_Dojoの設定を行います。
設定の項目はいくつかありますが、見た目の設定(テーマの設定)、利用したいDijitに関する設定(モジュールの読み込み)、Dijitの利用の方法の設定などを行う必要があります。
Zend_Dojoの設定
まず、Zend_Dojoを有効にするための設定から見ていきます。リスト1に、アクションコントローラでの下準備の例を示しています。
...
class IndexController extends Zend_Controller_Action
{
public function init()
{
$view = $this->view;
//Zend_Dojoのビューヘルパを有効にする(1)
Zend_Dojo::enableView($view);
//Zend_Dojoを設定する(2)
$dojo = $view->dojo();
$dojo->setLocalPath('/dojo/dojo/dojo.js');//(3)
$dojo->setDjConfigOption('isDebug', true);//(4)
...
}
...
ここまでは前回とほとんど同じです。(1)でZend_DojoのenableView静的メソッドでZend_Dojoヘルパを有効にした後、(2)でZend_Dojoの具体的な設定を行っています。この例では(3)Dojo Toolkitはサーバにローカルに設置したものを利用し、(4)デバッグ用の出力を行うように設定しています。
次に、どのような追加機能を利用するかの設定について見ていきます。Dojo Toolkitのさまざまな機能はDojo Toolkit本体とは別に、機能ごとの「モジュール」として提供されます。これらのモジュールは「dojo.js」を読み込んだだけでは有効にならず、別途、明示的に読み込む必要があります。Dijitの各機能も、基本的にはモジュールとして提供されるので、読み込むための設定が必要です。ここの設定は「テーマの読み込み」と「機能の読み込み」に分かれます。
テーマの読み込み
まず、テーマの指定について説明します。Dojo Toolkitのオブジェクトは、利用するテーマを切り換えることで見た目を変えることができます。具体的には、テーマに応じたスタイルシートを読み込み、オブジェクトにそのスタイルシートを利用するように指定することで、この機能を実現しています。これらのテーマを利用するには、
- ヘッダで利用するテーマのスタイルシートを読み込むように設定
- HTML中で利用するテーマを指定
という手順を踏むことになります。Dojo Toolkitで標準的に利用できるテーマはテーマモジュールという形で提供されており、Zend_Dojoからは、専用のメソッドを使って読み込む設定を行います。
...
class IndexController extends Zend_Controller_Action
{
public function init()
{
...
$view = $this->view;
...
//テーマの登録(1)
$dojo->addStyleSheetModule('dijit.themes.tundra');
//dijitのモジュールの読み込み(2)
$dojo->requireModule('dijit.layout.ContentPane');
}
...
この利用したいテーマを読み込むための設定がリスト2の(1)で、DojoビューヘルパのaddStyleSheetModuleメソッドを利用します。この設定を入れておくと、ビュースクリプトでヘッダが出力される際に、リスト3のようにテーマを読み込むための記述が出力されるようになります。
<style type="text/css">
<!--
@import "/~shnsk/dojo/dijit/themes/tundra/tundra.css";
-->
このテーマは通常のスタイルシートですので、HTMLのオブジェクトのclass属性等で指定することで実際に利用されます。個別のオブジェクトで個別にテーマを指定することも可能ですが、通常はHTMLのbodyタグのclass属性で利用するテーマを指定します(ここについては後のビュースクリプトのところで説明します)。
Dojo Toolkitには、標準で利用可能なテーマが5つ(a11y、nihilo、noir、soria、tundra)付属しています。なお、図2にあるように、これらのテーマの様子は「dojo/dijit/themes/templateThemeTest.html」で見ることができます。
このうち、「Tundra」が標準で利用されるテーマとなっています。また「a11y」はアクセサビリティの略で、くっきりとしたテーマになっています。
Zend_Dojoビューヘルパで、テーマ関係のメソッドには次のようなものがあります。
| メソッド名 | 引数 | 説明 |
| addStylesheetModule | $module | 利用したいテーマをモジュール名$moduleで追加する |
| getStylesheetModules | (なし) | モジュール名で登録されているテーマのリストを返す |
| addStylesheet | $path | 利用したいテーマをテーマのスタイルシートの設置されている場所$pathで指定する |
| getStylesheets | (なし) | 設置場所で登録されているテーマのリストを返す |
- 修正履歴
-
- 2009/09/04 22:34 サンプルファイルのファイル構成に誤りがあったため,修正しました(sample/codezine/zendapps/view→sample/codezine/zendapps/views).
この記事は参考になりましたか?
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 風田 伸之(カゼタ ノブユキ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

