木に竹を接ぐ

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

現在の「プランB」は、まさにそんな状況です。

プログラム構成の見直しを決意したわけですが、まず手をつけたのは各ページで読み込むファイルの整理です。

require_onceで読み込むファイルは、最初はDB接続用だけだったのですが、Smarty と PEAR::Auth のファイルが追加されて、3つになっていました。

これを「Smarty入門」にならって MyAuth.php 一つだけにしました。 MyAuth.php の中で MySmarty.class.php を読み込み、MySmarty.class.php のコンストラクタの中で DB接続するようにしました。
さらにDB接続方法も、mysql_connect から PDO に変更しました。 マニュアルはもちろん、ココとか、ココとか、ココが参考になりました。


ここから、今度はMVCっぽい書き方に転換していくために、共通だったテンプレートを各ページに専用で持たせるようにしました。 つまり、V(ビュー)の切り離しですね。

まがりなりにも動いているプログラムを弄る場合、一度に複雑な改変を加えるとバグがどの段階で混入したか追うのが難しくなります。

300ページ以上あるphpファイルから、ヒアドキュメントで共通テンプレートに渡していた部分を切り出して、専用テンプレートに移植しなければならないのですが、これにかなり時間を喰われました。 単純作業なので、だんだん飽きてくるんですよね。


テンプレートも別々にはなったものの、変数で渡した要素をただ表示させているだけで、Smartyの能力はまだほとんど使っていません。
オブジェクトや配列をテンプレートに渡して、Smarty の foreach や html_options を使ってテーブルやドロップダウンリストを生成するように変更します。

それに伴い、オブジェクトや配列を作るためにDBからデータを取得する部分を、.class.php ファイルクラスとして書き出します。 C(コントローラー)とM(モデル)の分離ですね。


とりあえず1ページやってみましたが、機械的に編集できる訳ではないので時間がかかります。 全てのページを改変し終わるまで6月いっぱいまでかかるのではないでしょうか?

でも、確かにコントローラーの記述がかなりスッキリしましたし、何よりMVCの考え方がだんだん腑に落ちてきて、面白くなってきました。 これでまたやる気が出てきましたね。 楽しみです。