はじめに
本連載では、PHP上で動作するアプリケーションフレームワークであるZend Frameworkについて紹介していきます。今回は、ウェブページへのリンクを管理するためのモジュールであるZend_Navigationについての紹介の2回目です。今回は設定ファイルからのリンク集の作成や、Zend_Aclとの組合せなど、少し高度な利用法について見ていきます。
対象読者
PHPの基本構文は一通り理解しているが、フレームワークを利用したことはないという方を対象としています。
必要な環境
Zend FrameworkはPHP 5.2.4以降とWebサーバがインストールされている環境で利用可能です。本稿ではWebサーバとしてApache 2.2を、OSにWindows XPを採用し、アプリケーションを作成していきます。
以下に、今回アプリケーション作成/動作確認に用いた環境を示します(インストールにあたっては最新安定版の使用を推奨します)。各項目の詳細なインストール手順は、「サーバサイド技術の学び舎 - WINGS」より「サーバサイド環境構築設定手順」を参照ください。
- Windows XP SP3
- PHP 5.3.1
- Apache 2.2.15
- Zend Framework 1.10.2
LinuxやFreeBSDなどUNIX系OSをお使いの方もコマンドはほぼ一緒ですので、パスなどは適宜読み替えてください。
ファイルからのリンク集の作成
前回は、プログラム中でZend_Navigationのfactory静的メソッドやaddPageメソッドを利用してリンク集を作成する方法について紹介しました。規模の小さいリンク集であればこれで問題はないですが、たくさんのリンクをまとめて管理したい場合には、少し見通しが悪い方法になってしまいます。
そこで、今回は外部ファイルにリンク集をまとめて記述しておいて、それを読み込む方法を紹介します。外部ファイルの読み込みにはZend_Configモジュールを利用しますので、ファイルの形式はXML形式とINIファイル形式の2つを利用することができます。
説明には、次のような階層構造を持つリンク集を例として使います(リスト1)。サイト内へのリンクはZend Frameworkのルート(例えば「index/index」)で、外部へのリンクは直接URIで(例えば「http://codezine.jp」)指定しています。
(コンテナ) ├─サイト内トップ(index/index) │ ├─ ナビゲーションの種類 │ │ ├─ メニュー(index/menu) │ │ ├─ リンク(index/links) │ │ ├─ XMLサイトマップ(index/sitemap) │ │ └─ パンくずリスト(index/breacrumbs) | └─ ACLのテスト │ ├─ ACL(index/acl) │ └─ うまくいかない例(index/aclnotworking) └─外部リンク集 ├─ コードジン(http://codezine.jp/) └─ Zend Framework(http://framework.zend.com/)
リンク集をファイルに記述して利用するには、次の手順で行います。
- リンク集の情報をファイルに記述
- Zend_Configクラスを利用してファイルの読み込み
- Zend_ConfigクラスのオブジェクトからZend_Navigationクラスのオブジェクトの作成
では、これらの手順を追っていきましょう。