一般的なこと

スキン中でラムダを使う

2010年1月8日

ふと思いついたアイデアがあるので、メモしておきます。

Jeansのスキンでの表示は、<%blog%>などのスキン変数の呼び出しから始まり、つづけてSQLクエリーが実行され、それぞれの行データを<%data%>を用いて表示するのが基本です。

この行データ(あるいは一般的に、データ)の中にラムダ(無名関数)が含まれているとき、それを呼び出すようにすれば色々できて面白いかもしれません。PHP5.2では、ラムダをを作成するのにcreate_functionを用いる必要があるのであまり使いやすくありませんが、近い将来(もしかしたらバージョン1.0までに)、PHP5.3に移行するので、そうなれば便利です。

ラムダを使わないとスキンが書けないようになる訳ではありません。スキンを書くときにはラムダを使っていることを感じさせないようにすることが必要だと思います。スキンを書くための敷居は低く設定しておきたいので。Jeansではスキンの派生という概念があり、それによりJeans本体のコードを簡潔にしてあります。これ以上はスキンの文法を複雑にしたくありません。

コメント

Kat (2010年1月8日 11:50:42)

とりあえずコードを書きましたが、create_functionで書いたラムダと文字列との区別が難しく、今書いたコードがPHPの今後のバージョンでも正常に動作するかの保障はできません。この機能を本格的に利用するのは、PHP 5.3へ移行してからのほうがよさそうです。

コメント送信