Philotとは
PHPのシンプルさを生かしながら、PHPerにもわかりやすい、Jakarta
Struts(MVCデザインパターン)のような、
Webシステムを開発するためのフレームワークです。PHPerにとって、Struts
フレームワークは、
使いなれるまで、理解するには複雑すぎて、時間がかかるし、今までPHPで培った知識や経験を捨ててまで、
Javaをやるのはナンセンス。でも、PHPでなんとかして、Strutsのようなフレームワークを使ってみたかった
ので、このPhilotフレームワークを開発しました。
この中で、Strutsのconfigurationファイル(struts-config.xml)には、XMLより、PHPerにとって使い慣れた、
そしてPHP言語自体に組み込まれている連想配列を使いました。このバージョンでは、Viewとして、Smartyを
使っていますが、他のテンプレートも実装可能な構造になっています。さらに、scope属性としては、request
スコープしかサポートしていません。
ページをまたがって値を保持するような仕組み、永続的なオブジェクトを実現するために、Persistentクラスを
用意しました。使い方は、サンプルを参照してください。
動作環境
A) Linux/2.4.22、Apache/1.3.27、 PHP/4.3.10、Smarty/2.6.6
B)Windows2000、Apache/1.3.33 (Win32)、 PHP/4.3.10、Smarty/2.6.7
DB連携のサンプルを実行するには、PostgreSQL、ADOdb.phpが必要となります。
通常の実行には必要ありません。
インストール方法(主にWindowsの例)
A) Philot本体(ダウンロード)
- philotをダウンロードし、解凍する
- philotディレクトリ以下を、c:\php\includeの下にコピーする
B) Philotのサンプルプログラム(ダウンロード)
- philot_samplesをダウンロードし、解凍する
- philot_samplesディレクトリ以下を、c:\ApacheGroup\Apache\htdocsの下にコピーする
- 必要であれば、templates_c を作成し、Linuxの場合には、書き込み可能にする。
(正確には、/home/httpd/html/philot_samples/hello_template/views/templates_c
等)
- 使い方は、http://localhost/php_samples/
で初期画面が表示される。
C) Philotのドキュメント(ダウンロード)
- philot_docをダウンロードし、解凍する
- philot_docディレクトリ以下を、c:\ApacheGroup\Apache\htdocsの下にコピーする
- 使い方は、http://localhost/php_doc/ で初期画面が表示される。
添付サンプル
Apache、PHP、Smartyが、既にインストールされていることが前提です。
philot_samplesには、以下のサンプルプログラムが収められています。
起動方法は、http://localhost/philot_samples/
で初期画面が表示されます。
- 単純htmlによる表示の例
出力は、Smartyのテンプレートではなく、単純なhtmlドキュメントの例。
- テンプレートによる表示の例
出力として、Smartyのテンプレートを使った例。
- ユーザActionFormでのエラー処理の例
ユーザActionFormの処理で、エラーが発生した場合の例。
- ユーザActionでのエラー処理の例
ユーザActionの処理で、エラーが発生した場合の例。
- 入力から表示までの例
「姓」、「名」、「住所」を入力して表示させる場合の例。ユーザActionFormで入力値の有効性を、
(1)「姓」、「名」:全角5文字以下、(2)「住所」:全角25文字以下の条件で確認する。
ユーザActionでは、(1)「姓」を$lastName、「名」を
$firstName とし、(2)「住所」を、変数名$addressとして、
ActionViewに渡す。 出力は、「姓」と「名」を全角で結合して、「姓名」として表示し、
「住所」は「住所」として表示する。
さらに、出力画面で、「戻る」をクリックすると、前回の値をテキストボックスに表示するようになっている。
1) 例1:値を、input の hidden 属性で持ちまわる従来の手法の例。ユーザmodelは使用していない。
2) 例2:持続オブジェクトPersistent.phpを利用し、ユーザmodelを構成した例。
3) 例3:持続オブジェクトPersistent.phpとDB連携を利用した例。
ここでは、データベースとして、PostgreSQL、汎用のDBライブラリとして、ADOdb.phpを使っている。
使い方
- philotディレクトリから、ユーザプログラムのルート・ディレクトリへ、index.phpをコピー
- 必要であれば、/models/userClass.php等として、モデルの処理クラスを作成
- /view/templates/userTemplate.tpl等として、初期画面、正常時の画面、エラー時の画面、再入力時の画面等の
WebページをテンプレートをSmartyで記述する
- ActionViewを継承して、/forms/userActionForm.php等を作成
ユーザーActionForm名の決定し、特にvalidate処理を記述。
- Actionを継承して、/action/userAction.php等を作成
ユーザーAction名の決定し、ActionForward名を返す。
- 設定ファイル/include/config.phpの作成
以上の処理を、イベント名と関連付けて、設定ファイルを編集する。
- /include/include.phpの作成
以上で作成したファイルのincludeを追加
- ユーザプログラムの構成例
userRoot
+-actions
| +-userAction.php
|
+-forms
| +-userActionForm.php
|
+-include
| +-config.php
| +-include.php
|
+-models
| +-userClass.php
|
+-views
| +-configs
| | +-user.conf
| |
| +-templates
| | +-userTemplate.tpl
| |
| +-templates_c
|
|
+-index.php
|
:ユーザプログラムのルート・ディレクトリ
:ユーザActionのディレクトリ
:ユーザActionクラス
:ユーザActionFormのディレクトリ
:ユーザActionFormクラス
:ユーザ設定ファイル等のディレクトリ
:ユーザ設定ファイル
:ユーザ・インクルード・ファイル
:ユーザModelのディレクトリ
:ユーザ・モデルのクラス
:Smarty用ディレクトリ
:Smarty用Configファイル用ディレクトリ
:ユーザ用Smarty設定ファイル
:Smarty用テンプレート・ディレクトリ
:ユーザ用Smartyテンプレート・ファイル
:Smarty用テンプレートのプリコンパイル情報格納ディレクトリ
必要であれば作成し、Linuxの場合には書込み可能にする。
:philot用indexファイル
|
開発者
深瀬 満男 :メールは
こちらまで
参考にしたWebリンク
- Jakarata Struts (日本語) (本家)
Webアプリケーションフレームワーク
- PHPを用いたWebアプリケーションフレームワーク
- Smarty
PHPを用いたテンプレートエンジン
- ADOdb.php
データベース用PHP汎用ライブラリー
- phpDocumentor
マニュアル作成に使用したドキュメント作成ツール
- dtree
JavaScriptで書かれた、TreeView。軽くて使いやすい。:今回は使用していません
- The PHP Layers Menu System
ブラウザで表示可能なメニュー表示用ミドルウェア:今回は使用していません
last modified: 2005/03/21 21:37
|
 |
|