かもめ日記

stash中でのユーザ変数の名前

Computer > SoftwareArchives > CoolRain
投稿日:2007年7月13日 00:26

<<戻るホーム進む >>

最初、テンプレート中で定義されたユーザ変数をstashに格納するときに、 タグハンドラとかち合わないようにプレフィックスを付けるようにしていたのだが、 よく考えるとメモリと時間の無駄だという事に気づいて、考え方を逆にしてみた。

ユーザ定義の変数は、そのままでstash中に格納される。

そして、タグハンドラが使う値の方に '.' + モジュール名 + '.' のプレフィックスを付けるようにした方がいいと思ったので、 そのように変えてみた。 タグハンドラ側で指定する名前はどうせ定数なのでこれなら余計なオーバーヘッドはかからない。 アンダスコアとかでなくて、ドットで始まるようにしたのは隠し属性という意味で、 UNIXファイルシステムの慣例からいただいた。

代償として、テンプレート側から内部変数が丸見えになるのだが、たぶん大丈夫だろう。 いざとなったら、ドットで始まる名前を弾けばいいだけだし。

それと、変数参照の為の簡便記法を導入した、${変数名}で変数参照できるが、 あくまで置換文字列であり、タグハンドラへ渡すパラメータとしては(すくなくともまだ)使えない。 パーサが手抜きで、'{'から'}'までの文字列を抜き出すだけなので、空白等はさむと正しく参照できない。

もいっちょついでに、サンプルコードとしてテンプレートファイルを読んで実行するだけのツールを追加してみた。 展開する中身が無いから動かしてもつまらんけど。 glibのkeyfile(INIファイルを拡張した形式のパーサ)あたりと組み合わせて、 ファイルから読んだ値と組み合わせるようにするだけでも結構役に立つのではないかと思った。

密かにスクリプト言語組み込んでみようとか、SQL直接実行できるようにしようとか下らない妄想とかも企んでいるのだが、 テンプレートエンジンを太らせてもCoolRainの方針と逆方向に行ってしまうので、拡張モジュールとして付属させる事になるだろう。 少なくとも、phpの劣化コピーを作るつもりはまるでない。 phpみたいのが欲しければphp使えばいいんだし。


トラックバック一覧

Trackback URL: http://www.mitsuki.no-ip.com/mt4/mt-tb.cgi/532

0個のコメント

コメントを投稿

スパム対策の為に全てコメントは確認後に公開します、投稿したコメントはすぐには表示されませんので、しばらくお待ちください。



seagull(かもめ)
体はおっさん、頭脳は子供のサラリーマンエンジニア。
Atom feed / Twitter / タスクリスト / GIT リポジトリ / ギャラリ

follow seagull_kamome at http://twitter.com
タグ クラウド
トピック
最近の記事
RSS feed meter for http://www.mitsuki.no-ip.com/~seagull/diary/
あわせて読みたい