ちょっとPHPから離れていたので、リハビリも兼ねてLoungeを改造してみようと思い立った今日この頃です。
- 機能で追加しようと考えてるもの
-
- ブラウザのリロードを行った際に、再投稿が行われないようにする
- 若干のセキュリティ対策
- エラー発生時、エラー画面に遷移させる
- 実装面において思いついたこと
-
- すべてPHP5を前提とした設計とし、ソースも完全に書き直す
- MVCモデルを意識した設計とする
- <View>
-
- 画面出力にはSmartyを採用する
- エラー画面に出力されるエラー名、メッセージはView側で設定できるようにする
- 画面表示されるログのレコード数は、View側で設定する(保存されるレコード数はモデル側で設定)
- リロード対策として、POSTメソッドで渡される項目に'id'フィールドを追加する(TYPE属性はhiddenとし、値はPHPで一意の値を生成する)
- <Model>
-
- 例外処理のため、LoungeExceptionを作る
- LoungeExceptionでは、__toStringメソッドをオーバーライドする
- __toStringの戻り値はエラー発生原因に応じた一意のエラー名称とし、View側がエラー画面出力のハンドリングに利用する
- Model部分に関する設定は設定ファイルで行う(画面出力に関する設定はSmartyのconfigファイルで行う)
- 設定ファイルの読み込みにはPEAR::Configライブラリを利用する
- ログは従来通りファイルで保存する
- ログの保存項目に、'id'フィールドを追加する(投稿されたIDがログに存在する場合は二重投稿と判断)
- <Controller>
-
- ここは特記することはないかな?
うーん、今思いついたのはこんなところですかねぇ。特に画面表示に関する部分は、PHPプログラマでなくとも、自由にデザインできるようにしたいと思っています。と言っても、Smartyの組み込み関数やconfigファイルも使用するので、Smartyのテンプレート記述に関する知識は必要になります。つくりにもよりますが、SmartyってHTMLやCSSだけわかればOKと言うわけでもないんですよねぇ。一意のIDを発行する部分だけは、PHPスクリプトを記述しないとダメですし。
とりあえず、これで様子を見て、もうちょっと複雑な掲示板でも作ってみようかと思います。まぁ、飽きなければですがね。:D
MVC・・・知らない概念だ・・・
忙しくしているうちにすっかり時代に取り残されたか・・・
Document/View構造みたいなもん?