SHOEISHA iD

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

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

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

Zend Framework入門

RADツールによるPHPアプリケーション速効開発
- Zend_ToolとZend_Application -

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


リソースプラグインの利用してレイアウトを追加

 よく利用するリソースについては、リソース作成のためのコードを使いまわしたい場合があると思います。そのための方法がリソースプラグインで、ブートストラップクラスに「_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)。

[リスト7]レイアウトの追加(application.ini)
...
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)。

[リスト8]レイアウトスクリプト(layout.phtml)
<?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)。

[リスト9]トップページの中身(index.phtml)
<h1>Codezine TEST</h1>
<p>
RADツールを使ったテスト。
</p>

 これで図4のような画面が表示されるはずです。

おわりに

 今回は、Zend Framework 1.8から導入されたRAD(Rapid Application Development)関係の機能について見ていき、環境の構築からアプリケーションの設定について軽く触れてみました。

 次回も引き続きRADツール関係のモジュールを扱っていきます。次回扱うのはZend_Applicationで、ブートストラップクラスの動作の仕組や、リソースプラグインの作成などについて説明したいと思います。

修正履歴

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

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
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本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

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

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

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4253 2009/10/18 21:30

イベント

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

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

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

メールバックナンバー