|
||||||||||||
|
前のページ 1 2 3 |
||||||||||||
| 単純なテンプレートエンジン -Renderers | ||||||||||||
|
前述のように、このフレームワークではテンプレートエンジンとしてHTML_Template_ITを使用しています。最も気に入っているのは単純なところです。使い方を覚えるのが簡単で、必要なことは何でもこなせるようにできるだけの柔軟性があります。 テンプレートを2つに分けて見ていきます。「master」テンプレートと、「action」テンプレートがあります。フレームワークで、モジュールから処理されたレスポンスを受け取って表示するのがレンダラと呼ばれるものです。HTMLのレンダラだけを使用するサイトがほとんどですが、プロジェクトで必要なら、RSS、ATOM、SOAP、WMLのレンダラを作ることができます。 リスト7にHTML_Template_ITを拡張したHTMLRenderer クラスのコードを示します。また、重要なのはレンダラはフレームワークの一部ではないということです。不思議に思われるかもしれませんが、これにはちゃんと理由があります。プロジェクトごとにレンダリングに対するニーズは様々です。筆者たちはすべてのプロジェクトで大抵次のようなことを確認しておきます。
表3:レンダリングに対するニーズ
リスト7
<?php
大体わかると思いますが、プロジェクトによってレンダラは大きく異なります。プロジェクトごとに独自のレンダラがあり、筆者たちは将来的にはレンダラのスーパークラス(またはPHP5へ移行したらインターフェースになるかも)を作るかもしれません。でも、今のところまだその必要はありません。 |
||||||||||||
| 言語ラベル | ||||||||||||
|
筆者たちのフレームワークでは、言語ラベルのことを国際化層と呼んでいます。まだ、フランス語と英語の2つの言語しか使えません。これには、主に二つの理由があります。まず、筆者たちはカナダにオフィスを持ち、カナダのクライアントから仕事を請け負うことが多いということがあげられます。 次に、カナダでは公用語が2つあるので、Webサイトでも両方の言語をサポートしなくてはならないことがあげられます。こういうわけで、筆者は国際化をとても単純に実現することにしました。ユーザ側に表示されるテキストはすべて別々の言語ファイルに置かれています。 すべてのモジュールが使用するグローバル言語ファイルと、それ以外に各モジュールには独自の言語ファイルがあります。フレームワークでは、これらの言語ラベルをすべてのモジュールで使える配列に読み込みます。この仕組みの詳細は、リスト6のloadLang()関数を見てください。 今は2つの言語しかサポートしていませんが、サポートできる数に制限はありません。イメージも言語によって大きく異なることがあるので、イメージディレクトリにもenとfrのサブディレクトリがあります。図2を参照してください。 |
||||||||||||
|
前のページ 1 2 3 |
||||||||||||
書籍紹介PHPプログラマーズマガジン PHPプログラマーズマガジンは、PDF形式で読者の方にお届けするPHP言語(PHP: Hypertext Processor)専門誌です。 カナダMTA出版のphp|architect誌を日本語に翻訳し、独自の記事を加えて月刊でお届けしています。 発行:アシアル株式会社 価格:1,029円 |
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||



