Web事業部_クリエイティブ
Web事業部_クリエイティブ
2010.04.26

「scaffold? 何それ?」って言ったら笑われた

まっちー

先日、他のプログラマの方たちとCakePHPについて語り合っているときに、scaffoldって単語が飛び交いました。僕以外の二人は当然のようにそれを分かっていましたが、僕だけ何のことか分からなかったので、「それ何ですか?」って聞いたら「知らないのかYO!!」って言われてしまいました。

何かよく分かんないけど、CakePHPとかを使っていればわりと初期の段階で知ることなんだそうです。

主人がオオアリクイに殺されてからもう一年くらい経つのに……間違えた、僕がプログラマになってからもう一年くらい経つのに……普通に知りませんでした。Scatmanなら知ってるけど……。

CakePHPにおけるscaffoldとは何ぞやというと、コントローラーとモデルさえ作っとけば勝手にデータの生成や編集、削除のフォームを良い感じに作ってくれるということらしいです。

//コントローラー
class UsersController extends AppController {
    var $name = 'Users';
    var $scaffold;
}

//モデル
class User extends AppModel {
    var $name = 'User';
}

何とこれだけでOK。超お手軽です。あとはデータベースにusersのテーブルを作っとけば、ビューが自動でできあがる。

The CakeBookを読むと、この機能はかなりクールなんだそうです。あまりにクールすぎるため、製品版のアプリケーションで使用したくなるほどクールなんだそうです。使用したくなってしまうそんなあなたもクールなんだそうです。きっとレンタルボディーガードよりクールなんだと思います。スピードワゴンの去り方よりもクールに違いありません。

でも、あくまでもスキャフォールディングはスキャフォールディングであるらしく、プロジェクトの初期段階で素早く構築できるというルーズな構造なんだそうです。何のことかよく分かりませんが、どんな場合にでも対応できるほど柔軟で万能なものではないということなんでしょう。クールでルーズなツールのようです。

まあ、今まで一度も使ったことがないですし、これから先も使うかどうかは分かりませんが、知っといて損はないなと思いました。

そもそも僕が知らない原因の一つは、Cakeをbakeしたことがないからなんだそうです。正確に言うと初めてCakePHPに触ったときに一回だけやったことはあるんですけど(この辺りの記事にそのときのことが書いてある)、あれは本に書いてある通りにやったら最終的に本に書いてある通りの結果が返って来ただけで、いったい何をやっていたのかは全く分かってなかったので、事実上ノーカウントです。