PHPで手作りMVC

現在知的システムデザイン研究室では、4回生が「プログラミング演習」というイベントに取りかかっています。このイベントは主にJAVAでオブジェクト指向やらテストやらに慣れて、プログラミングスキルの向上をはかろうというものです。

我らがウェブコミュニケーショングループではJAVAのSWINGを使ったアウトラインマインドマップエディタもどきと、PHPのウェブブックシェルフを開発してもらっているのですが、なかなか指導院生側が未経験の課題が多く、指導しているこちら側にもよい勉強になっています。

PHPで開発している彼にはMVC設計に基づいた開発をしてもらっているのですが、フレームワークなんぞ何も使わず、すべて手書きでプログラミングしています。(DB接続にPEARのDBだけ使ってますが。)オブジェクト指向もよく分かっていない、PHPなんて初めて触る子なので、なかなか手間取ることが多いです。先週の水曜日、遅ればせながら初めてそのソースを見せてもらったのですが、MVCになってね~!!ということで、急遽システム再構築。もう強制的にメソッド名から変数名からすべて指定して、強引にMODELを作らせました。

当然のことながら、下手にモデルを作っているものだから、コントローラもビューも全部やりなおし。なんだかかわいそうかなぁ~とは思いながらも、そこは妥協せず。でもさすがに放置プレーはできず、金曜日は付きっきりでMVCのプログラミングを覚え込ませましたよ。なんとかモデルを作成、DB接続とSQL実行のテストを終え、一つのモデルができあがりました。

それからコントローラとビューに手を付けたのですが、いままでハッシュの受け渡し中心だったコントローラ、ビューは、モデルのインスタンスの受け渡しになったとたん急激にコードが減少。特にビューが手作りでPHPのforeach文なんか使ってハッシュ扱ってるもんだから、HTMLの中にPHPコードが山ほど含まれて、HTMLとしてもPHPとしてもほぼ解読不可能だったのですが、見事にその読みやすさが向上。すばらしきかなMVC。その勢いで数十分で2つのコントローラと2つのビューが完成。すばらしい♪

RailsだったらRubyのコードを一文字も書くことなくできちゃうところだし、MVCに慣れてれば1時間も掛からない位のコード量だけど、泥臭い作業もなかなか勉強になりました。


そしてウィンドウズがいかに開発に向かないかも痛感。

「コマンドプロンプトって、コピーペーストすらできねーのかよ!?」

マウスにもキーボードにも嫌われて、改めてウィンドウズPCが苦手になりましたよ。。。