PHP Framework 開発プロジェクト

Philot

空気清浄機| デジタルビデオカメラ| ビデオキャプチャー| MP3プレーヤー|
Google
Amazon.co.jpアソシエイト

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/ で初期画面が表示されます。

  1. 単純htmlによる表示の例
    出力は、Smartyのテンプレートではなく、単純なhtmlドキュメントの例。
  2. テンプレートによる表示の例
    出力として、Smartyのテンプレートを使った例。
  3. ユーザActionFormでのエラー処理の例
    ユーザActionFormの処理で、エラーが発生した場合の例。
  4. ユーザActionでのエラー処理の例
    ユーザActionの処理で、エラーが発生した場合の例。
  5. 入力から表示までの例
    「姓」、「名」、「住所」を入力して表示させる場合の例。ユーザ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を使っている。

使い方

  1. philotディレクトリから、ユーザプログラムのルート・ディレクトリへ、index.phpをコピー
  2. 必要であれば、/models/userClass.php等として、モデルの処理クラスを作成
  3. /view/templates/userTemplate.tpl等として、初期画面、正常時の画面、エラー時の画面、再入力時の画面等の
    WebページをテンプレートをSmartyで記述する
  4. ActionViewを継承して、/forms/userActionForm.php等を作成
    ユーザーActionForm名の決定し、特にvalidate処理を記述。
  5. Actionを継承して、/action/userAction.php等を作成
    ユーザーAction名の決定し、ActionForward名を返す。
  6. 設定ファイル/include/config.phpの作成
    以上の処理を、イベント名と関連付けて、設定ファイルを編集する。
  7. /include/include.phpの作成
    以上で作成したファイルのincludeを追加
  8. ユーザプログラムの構成例
    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リンク

  1. Jakarata Struts (日本語)  (本家)
    Webアプリケーションフレームワーク

  2. PHPを用いたWebアプリケーションフレームワーク
     A. Phrame   B. php.MVC   C. Mojavi 
  3. Smarty
    PHPを用いたテンプレートエンジン

  4. ADOdb.php
    データベース用PHP汎用ライブラリー

  5. phpDocumentor
    マニュアル作成に使用したドキュメント作成ツール

  6. dtree
    JavaScriptで書かれた、TreeView。軽くて使いやすい。:今回は使用していません

  7. The PHP Layers Menu System
    ブラウザで表示可能なメニュー表示用ミドルウェア:今回は使用していません



last modified: 2005/03/21 21:37
SourceForge.jp