CakePHP のプロマネとリードデベロッパーが新たに立ち上げた Lithium ( Lithium: the most rad php framework ) というプロジェクトがありまして、ゲームとは関係ないので詳しくは述べませんが、状況によっては追っかけてみるのも面白いと思います。
データの取得はクラスメソッド、レコードはインスタンスに対応するようになったみたいで、すっきりした印象があります。よくわからんのですが DAO のパターンに近いのでしょうか?
…と、まぁ、こういった感じで、今まで使っていた技術を交換したくなったり、状況に逆らえず交換しなければならなくなることがあります(どういう経緯かわからないけどお客さんに指定されてるとか)。ただ、今までのノウハウや資産が生きないのもよくないことと思います(例が悪かったです、 CakePHP → Lithium だったら生きそうな資産が多くあります)。なんとか一個人でも力になれる枯れさせるための活動ができないものか日々足りない脳味噌を回す日々…
そんな経緯から、どんなライブラリ、どんなフレームワーク、どんな言語を使うケースでも、「こういうの毎回書いているなぁ…」と嫌になるロジックをまとめようかと思うようになりました(ちなみに、これはゲームにも関係するのですが、このサイトではやりません)。
前ふり終わり。
「状況が異なっても毎回書くような共通のロジックをまとめる」といっても、低の視点で見ると「共通」ではない何かに依存しているものです。たとえば、「変数 address の中に “Tokyo” が含まれているか?」という処理を実現する場合、まぁ、ポインタを進めて文字列を分析しても良いのですが、ほとんどの場合 strpos() とか使うのではと思います。「共通」と言いながらその言語の標準関数を使っていて、これに依存しているとほかの言語に持っていけません。…とは言うものの C/C++ の標準関数くらいだったら、ほかの言語にも似たような機能があるとみなして大丈夫ではなかろうかとも思い、前に買った書籍なんかを読み直して調べておりました。
結果、見逸れていただけで C/C++ の標準関数というのは(思っていたより)いろんなことができることが分かりました。とくに日付関連が便利でした。「これ、 PHP に持ってった時、対応する関数が見つかるだろうか?」などと心配にもなるほどです。
失敗です。考え直さねば…
Contributions