|
||||||||||||
| 前のページ 1 2 | ||||||||||||
| モジュールの作成 | ||||||||||||
|
フレームワークの最もよいところは、どう動作しているかわからなくても使えるところです。この考え方は特に「どう動くか」を詳しく掘り下げていくのが好きなPHP 開発者にはいやがられます。しかし重要なのは、クラスが何をしているのか、どう使うのかを理解することです。 リスト10は、Loginモジュールがどのようなものかを示しています。EdLecky-Thompsonが書いたセッションハンドラを使用していることに注意してください。 リスト10
<?php
リスト11は、Login アクション用のアクションテンプレートを示しています。単純なHTML ドキュメントの一部です。ディレクトリツリー内では次の場所になります。/include/tpl/Login/login.tpl リスト11
<form action="/app/Login/process" method="post">
リスト12には言語ファイルが示してあります。ディレクトリツリーでは次の場所になります。/include/lang/Login/en.txt リスト12
username = Username
このサンプルモジュールで最も重要なのは、getHandledRequest()関数をどうやってオーバーライドしているかというところです。Moduleスーパークラス(リスト6)を見ると、getHandledRequest()関数はただ定義されているだけ(ブロック内にコードがない)であることがわかるでしょう。 PHP5ならこの関数は抽象関数となり、必ずモジュール内で実装するよう開発者に強制することができます。開発者が作るのは、モジュールのアクションの処理だけです。実装には様々な方法がありますが、ここでのコード標準ではswitch/case文を使うことになっています。 アクションをチェックし、アクションとして普通は同じ名前の関数を呼び出します。Webブラウザが/app/Login/login にリクエストを送ってきた時は、フレームワークはLoginモジュールを読み込み、さらにその中でlogin.tpl という名前のテンプレートが読み込まれます。それからモジュールはlogin()関数を呼び出しますが、それは何もしません。モジュールのgetHandledRequest()関数が最終行でテンプレートをHTMLの一部として返し、それをハンドラが受け取ります。 Webブラウザがログインフォームをサブミットすると、リクエストはユーザ名とパスワードをPOSTデータとして持つ/app/Login/processとなります。この場合、フレームワークは再度Loginモジュールを読み込みますが、今度はprocess.tplというアクションテンプレートを読み込みます。見つからなければ何も読み込まれません。 次にモジュールはlogin_process()メソッドを呼び出し、ログイン処理を行います。ログインに成功すると、ホームページにリダイレクトされます。失敗すると、loginError.tplファイルがアクションテンプレートとしてモジュール内で読み込まれます。 これが全サイクルです。Loginクラスからわかるように、モジュールを作るのに特に制限はなく、モジュール1つだけで完結しています。 HTMLの変更はモジュールのアクションテンプレートで行われ、言語ラベルはモジュールごとの言語ファイルで処理されます。フレームワークを使うとアプリケーションのデバッグが簡単になります。URLによってエラーがどこで起きているか正確にわかるので、アクションをたどっていくことができます。テキストが間違っている場合も、修正しなくてはいけない部分が簡単に分かります。 HTMLに間違いがあれば、tplディレクトリを見ればいいのです。フレームワークではすべてがとても明確になります。 |
||||||||||||
| 今後の機能追加予定 | ||||||||||||
|
筆者たちは最近ユーザパーミッション層を追加し、フォームの入力チェックをもっと簡単にする予定です。また、PHP5とMySQL5への移行も行いました。このようなアップグレードを簡単に行えるように、フレームワークの再コーディングに力を注いでいます。 フレームワークが筆者たちのWebサイトと相性がよいかどうか確かめるには、まだ時間がかかります。しかしフレームワークの素晴らしいところは、フレームワークを使用して作ったサイトに影響を与えることなくこのような更新を行えるところです。 |
||||||||||||
|
前のページ 1 2 |
||||||||||||
書籍紹介PHPプログラマーズマガジン PHPプログラマーズマガジンは、PDF形式で読者の方にお届けするPHP言語(PHP: Hypertext Processor)専門誌です。 カナダMTA出版のphp|architect誌を日本語に翻訳し、独自の記事を加えて月刊でお届けしています。 発行:アシアル株式会社 価格:1,029円 |
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||


