PHPでWebアプリ、フレームワーク以前
1年半ぐらい、PHPでプログラミングをやってきているが、実は典型的なWebアプリの開発というのはやったことがなく、SOAPでゴニョゴニョしてホゲホゲみたいな裏方的なプログラムを作ってきた。
それが今回始めて、良くあるWebアプリを作ることになった。ブラウザはIEで、RDBにアクセスして結果を表示するとかそういうやつだ。1月で作るという短期開発で、残念ながらフレームワークについて調べている時間もなく、単純なPHPの範囲内だけで作ることになった。
フレームワークがないけど、なるべくモデルとビューを分けるように書いてみた。というか書いていると、自然とそうしないと駄目だと感じるようになり、そうなってくる。大きな区切りとして前半にPHPコード、後半にHTMLを書くようにして、後半にはなるべくPHPのロジックを書かないようにする。
<?php // 前半部分でなるべくやっておく。 // 以下の <HTML> の下ではなるべくロジックを書かない。 ?> <HTML> … </HTML>
前半では、表示するため情報を保持するクラスを定義して、プログラムの前半でそのクラスに情報を詰めるようにする。後半では、作成したBeanのようなクラスの情報を、HTMLに埋め込んでいくだけにする。
ここまでくると後半のHTML部分をSmartyにまかせることに至るまでの距離は短いのだろう。(htmlspecialchars()なんて何回も書きたくないよ。やっていて嫌になる。)さらに前半はDIでってことになるのかな。
ただ、何でも1ファイルに書くっていうのも利点があり、とにかくそのファイルを見れば何をやっているか分かる。今回の開発ではフレームワークを使わないと破綻するというところまではいかなかった。また私以外の経験者には慣れたやり方であり、短期ではフレームワークは導入しにくいですね。