【CakePHP】ケーキを焼いてプログラムを作ります!
近年のプログラミングの世界は、フレームワークという名前で提供される汎用的な部品を利用して、開発効率を上げたり多人数でもバラツキのないプログラムを作るやり方が主流です。昔で言う共通ライブラリが高度に発展したものと言ってもよいでしょう。
PHP言語で使えるフレームワークがいろいろある中で、人気があるのがCakePHPです。Cakeは「けーく」と読みます。日本語の「警句」ではなく、食べる「ケーキ」のことです。NetCommonsの次世代のバージョン3はCakePHPを採用することに決まっていて、勉強を兼ねてCakePHPをさわっています。
CakePHPで目を引くのは、bake(ベーク)という名前が付いた、PHPプログラムを自動生成する機能があることです。bakeはデータベースの構造を参照してCRUD(作成、検索、更新、削除)機能を備えたPHPプログラムを自動生成するコードジェネレータです。Cakeをbakeするというネーミングのセンスは良いですね。
例えば、以下のような会議室、参加者、会議の3つのテーブルで構成される会議スケジュール管理システムを考えます。
bakeの機能を使うと、3つのテーブルの関係を読み取って、実際に動くものができます。一覧表示、1件表示、データ追加、データ削除ができます。これに手を加えて見映えをよくしたり、細かい機能を加えたりすれば、アプリケーションの完成です。
私は20年前はプログラマーでした。当時からプログラムを自分で書くのが面倒だと考えていて、プログラムを作るプログラムに興味を持っていました。数年前はPHPで書かれたオープンソースCRMパッケージ「SugarCRM」のコードを自動生成する「CandyPod」を開発して販売していたことがあります。
その流れで見ると、bakeの機能はたいへん面白いです。CakePHPを使ってNetCommons 3でおもしろい展開ができそうな気がしてワクワクします。