日別アーカイブ: 2012 年 2 月 20 日

最近の吹奏楽コンクールデータベース事情

日々作業にいそしんでいるのであるが、こういった理由で未だアップデートに至っていない、という言い訳。

CakePHP 2.0 へのアップデート

大まかには変わっていないんだけど、細かいところでヘルパーの呼び出しとかが変わっていたり、paginator 関連で引数の順番が変わっていたり、基本的にはほぼ全般に渡って手を入れる必要がある。まあ、ソースコードを綺麗にするいい機会かなと。この作業はほぼ完了。

可変パラメーターへの対応

例えば、以前 Pukiwiki を使っていた時などには、

/controller/index.php?plugin=hogehoge&param1=a&param2=b&param3=c

みたいな書式で可変数かつ順不同のパラメーターをコントローラー(Pukiwikiの概念ではプラグイン)に渡すことができていた。CakePHP では

/controller/a/b/c/

みたいにパラメーターを渡す順番が限られているものだとばかり思っていた。(後ろの方にあるパラメーターを省略することでパラメーターの個数を変更することは可能。)しかし、これは

/controller/param1:a/param2:b/param3:c/

という形にすることで可変数かつ順不同のパラメーターをコントローラーに渡せることが最近分かった。これらは$params[‘named’][変数名]という配列に格納されるので、

$this->params['named']['param1']
$this->params['named']['param2']
$this->params['named']['param3']

という形で各パラメーターに設定された値を取得することができる。今まではパラメーターの個数や順番によってコントローラーの動きが制限されていたのだが、これでかなり柔軟に変数を渡すことができるようになった。

今まで他のページから参照していただいた URL が変わってしまうとか、SEO 的に問題ないのか?とか多少は懸念はあるのだが …

さらに一歩進んで

例えば、今までの吹奏楽コンクールデータベースでは指揮者に着目したリスト作成には viewcond というコントローラーを使って、団体に着目したリスト作成には viewgroup というコントローラーを使っていたのだが、上記のようなパラメーターの受け渡しができるのであれば、単に

/controller/view/conductor:<conductor_id>/
/controller/view/group:<group_id>/

みたいなインターフェイスにした方がコード量は減るし、一貫性は保たれるし、のちのちのメンテナンスが楽かなあ、と思いついた。本当にうまくいくかどうかはまだ試していないのであるが、うまくいきそうな感触はある。

*****

ということで、このあたりを整理して、すかっとホームページ上のデータベースシステムも更新して、それから facebook とかで広範囲に吹奏楽コンクールのデータ提供をお願いしようかと思っているしだいです。

相変わらず本業の方も落ち着かずバタバタやっているのでリニューアルの日程的なメドも全然立たないのですが、とりあえず末永く見守っていただきたいと思います。

今後ともよろしくお願いいたします。