PHPによるWebアプリ開発をすることになってPHPで遊んでいます。
ここ数年ずっとAsp.netで今後も継続して開発するのでPHPの開発でも同じような感じに組めないかなぁとあれやこれやと構成を考えてます。
とりあえず、Pageクラスを作成してそれにPage_InitやPage_Loadメソッドを作成して実際の画面クラスでそれを継承してみました。
んで子Page_Initで親メソッドの呼び出しと子Page_Loadメソッド呼び出し+ユーザーからのイベント制御をやってます。
もちろんButton_Clickみたいなメソッド名ですw
大枠書くと
class Login extends Page {
// コンストラクタ
function Login()
{
// Pageクラスのコンストラクタ
parent::Page();
$this->Page_Init();
$this->Page_Load();
}
// クラスメンバの初期化を行う
function Page_Init()
{
parent::Page_Init(); // 親メソッドを実行する
// 画面コントロールの初期化コード
}
// 画面の表示時に実行する
function Page_Load()
{
parent::Page_Load(); // 親メソッドを実行する
// POST情報によって行う処理を振り分ける
if (count($_POST) > 0) {
switch ($_POST["Submit"]) {
case "ログインする":
$this->Login_Click($_POST["LoginID"], $_POST["Password"]);
break;
default:
break;
}
}
// テンプレートを指定する(※メソッドの最後に実行すること!)
$this->smarty->display($this->tplFileName);
}
// 入力情報のチェックを行う
function Login_Click($LoginID, $Password)
{
// ログイン認証を行う
$LoginErrFlg = $user->Login($LoginID, $Password);
// 結果を出力する
}
}
みたいな。っぽくないですか?
PHP5に対応させればもっと簡単になるはずなのですが、運用環境でPHP5が使えないorz
流れを同じにしてそれを共通化するだけでその辺の事を忘れる事が出来るのでいい感じです。
あれしたいこれしたいってのもネットやリファレンス本で逆引きすれば関数はすぐにわかるので後は「C#ならこうなのにブツブツ」というだけで済みます。
しかし一応SmartyってHTML出力を簡便にするフレームワークを利用しているのですが、Web、HTMLコントロールの便利さを痛感しますね。
今後継続してPHP開発をするならばコントロールフレームワークを作った方が効率上がるかもしれないです。
というかだれか作ってないですか?作りませんか(キョロキョロ
投稿日時 : 2006年10月5日 0:37