ながらくJavaとServletを使ってウェブアプリケーションを構築してきたのだが、ついにPHPを使って開発をすることになった。
以前から、PHPは良さそうだと思って、オライリー関係の本を買って眺めたり、小さなコードをPHPで書いてきたのだが、ある程度まとまったウェブサイトをPHPで 構築するのは今回がはじめて。
実際に構築していると、PHPは驚くほど簡単で痛みが少ないことがわかった。 (オライリ─本のPHP5入門にも pain free と書いてあった...)
以前は、HTML中にコードを入れるのは保守の点で劣っていると考え、Javaでウェブサイトを構築する場合でも、JSPは使用しないで、Servletでロジックを書いて、テンプレートでHTMLを生成するというやり方がよいと思っていたこともあった。
しかし、最近ではビューをCSSとJavaScriptでコントロールすることが多くなってきているので、サーバ側で生成するHTMLの役割は、ほとんどビューというより{u:モデルが中心}になり、ビューを作り出すのは、(クライアントサイドの)JavaScriptで行うようにつくる。 このような作り方であれば、HTML中にPHPコードが混じることに問題を感じない。
むしろ、HTMLの一部をPHPで作り出していくことで非常にはやく開発できる。 小規模なウェブアプリケーションでは、保守すべきコード量も少ないので、このスピードがはやいというのはかなりのメリットが大きいと思う。 (デザイナーさんとの協調作業や複数人での制作の面ではやはり問題になるとは思いますが.)
さらにモデルとかビューとかの話とは関係ないが、HTML中に埋め込んでいるJavaScriptについては、このJavaScriptコードを PHP を使って、実行時にダイナミックに生成することができる。 これがかなり重宝する。 もしPHPなしでJavaScriptだけで(DOMを駆使して)コーディングしようとするとすごいやっかいなコードをPHPで生成してしまうことで、シンプルにすることもできる。
もちろん、こういった強力さというのは諸刃の剣で、使いようによってはひどいことになりますが。
ロジックとビューの分離
ある程度以上の規模のウェブ構築では、 PHPのフレームワークを使うので、たぶん ロジックとビューの分離が問題なくできるのだ思いますが。