SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Zend Framework入門

Zend Framework入門(17):
ウィジェットDijitをPHPアプリで利用する - Zend_Dojo(中編)-

Zend Frameworkによる実践的なPHPアプリケーション開発 17


  • X ポスト
  • このエントリーをはてなブックマークに追加

DijitのためのZend_Dojoの設定

 まずは、アクションコントローラで行う必要のある処理について説明します。ここでは、Zend_Dojoのビューヘルパを有効にする処理と、有効にしたZend_Dojoの設定を行います。

 設定の項目はいくつかありますが、見た目の設定(テーマの設定)、利用したいDijitに関する設定(モジュールの読み込み)、Dijitの利用の方法の設定などを行う必要があります。

Zend_Dojoの設定

 まず、Zend_Dojoを有効にするための設定から見ていきます。リスト1に、アクションコントローラでの下準備の例を示しています。

[リスト1]Zend_Dojoの設定例(アクションコントローラ)
...
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のオブジェクトは、利用するテーマを切り換えることで見た目を変えることができます。具体的には、テーマに応じたスタイルシートを読み込み、オブジェクトにそのスタイルシートを利用するように指定することで、この機能を実現しています。これらのテーマを利用するには、

  1. ヘッダで利用するテーマのスタイルシートを読み込むように設定
  2. HTML中で利用するテーマを指定

 という手順を踏むことになります。Dojo Toolkitで標準的に利用できるテーマはテーマモジュールという形で提供されており、Zend_Dojoからは、専用のメソッドを使って読み込む設定を行います。

[リスト2]テーマの読み込み(アクションコントローラ)
...
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のようにテーマを読み込むための記述が出力されるようになります。

[リスト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」で見ることができます。

図2:テーマの一覧(http://localhost/)
図2:テーマの一覧(http://localhost/)

 このうち、「Tundra」が標準で利用されるテーマとなっています。また「a11y」はアクセサビリティの略で、くっきりとしたテーマになっています。

 Zend_Dojoビューヘルパで、テーマ関係のメソッドには次のようなものがあります。

Zend_Dojoテーマ関係のメソッド
メソッド名 引数 説明
addStylesheetModule $module 利用したいテーマをモジュール名$moduleで追加する
getStylesheetModules (なし) モジュール名で登録されているテーマのリストを返す
addStylesheet $path 利用したいテーマをテーマのスタイルシートの設置されている場所$pathで指定する
getStylesheets (なし) 設置場所で登録されているテーマのリストを返す

次のページ
利用したい機能の読み込み

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Zend Framework入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 風田 伸之(カゼタ ノブユキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3589 2009/09/07 14:05

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング