リソースプラグインの利用してレイアウトを追加
よく利用するリソースについては、リソース作成のためのコードを使いまわしたい場合があると思います。そのための方法がリソースプラグインで、ブートストラップクラスに「_init...」メソッドを追加するかわりに、リソースを生成するリソースプラグインをあらかじめ別に記述しておき、それをアプリケーションの設定から呼び出すように記述しておきます。
なお、標準でもいくつかのリソースプラグインが準備されています。
| リソースプラグイン名 | 対応するモジュール |
| Db | Zend_Db |
| Layout | Zend_Layout |
| Navigation | Zend_Navigation |
| Router | Zend_Controller_Router_Rewrite |
| View | Zend_View |
| Locale | Zend_Locale |
| Session | Zend_Session |
| Frontcontroller | Zend_Controller_Front |
| Translate | Zend_Translate |
| Modules | その他の、さまざまなモジュール |
このうちの、レイアウトに関するリソースを作成するリソースプラグインを利用するように設定します(リスト7)。
... bootstrap.class = "Bootstrap" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" [staging : production] ...
▼
... bootstrap.class = "Bootstrap" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" ;;追加した分:レイアウトの追加 resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts" //……(1) [staging : production] ...
ここでは、(1)でレイアウトに関する記述を追加しています。この行のように「resources」で始まる行は、リソースプラグインに関する設定で、
resources.(リソース名).(プロパティ名) = (設定値)
という形式を取ります。例えば、この行では「Layoutモジュール」の「layoutPath」を「APPLICATION_PATH "/layouts/scripts"」(つまり「C:\codezine\application\layouts\script」)に設定しています。
最後に、上で指定した場所にレイアウトスクリプトを設置します。「C:\codezine\application\layouts\script\layout.phtml」というファイルを作成し、中身は次のようにしてください(リスト8)。
<?php
echo $this->doctype();
//トップページへのURLを作っておく
$this->top_url = $this->url(array('controller'=>'index'));
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- ヘッダの出力 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php echo $this->headTitle() ?>
<?php echo $this->headLink() ?>
<?php echo $this->headStyle() ?>
<?php echo $this->headScript() ?>
</head>
<body>
<!-- ページ上部のヘッダの出力 -->
<div id="header" style="background:cyan">
<a href="<?php echo $this->top_url ?>">TOP</a>
</div>
<!-- 本体の出力 -->
<?php echo $this->layout()->content ?>
</body>
</html>
同様に、index.phtmlの中身も書き換えておきましょう(リスト9)。
<h1>Codezine TEST</h1> <p> RADツールを使ったテスト。 </p>
これで図4のような画面が表示されるはずです。
おわりに
今回は、Zend Framework 1.8から導入されたRAD(Rapid Application Development)関係の機能について見ていき、環境の構築からアプリケーションの設定について軽く触れてみました。
次回も引き続きRADツール関係のモジュールを扱っていきます。次回扱うのはZend_Applicationで、ブートストラップクラスの動作の仕組や、リソースプラグインの作成などについて説明したいと思います。
