2010年11月25日木曜日

Smarty3がリリースされたようなので、いいところを紹介しよう

よりオブジェクト指向&高速になったSmarty3

PHP5でパーサーを一新されました。いきなり話は変わりますがw、PHP5.2からはオブジェクト指向で書いても速いし、PHP4より性能も良いので、未だにPHP4を使ってるのであれば移行しましょう。今は良くてもそのうち負債になりますよ。そしてその時は是非Smarty3を一足先に導入して人柱になってくださいね♪

Smartyふたたび

Smartyは、なぜか一時期(今も?)嫌われていましたが、個人的には使い方によっては生のPHPを使うより全然良いと思います。SmartyはHTMLのためのテンプレートエンジンとして使ってる人が多いかもしれませんが、テンプレートエンジンなので、例えば他のところでも変数展開を使いたい場面では使えます。例えば、定型型メール、テーマ別CSS、サーバ側で動的なデータを反映させたJavaScriptなど、意外にいろいろと使い道はあるんです。

Smarty3を使ってみて2にくらべて良いなーと思った点をあげてみます。あ、もしかしたら1に比べてかも...

  • nocacheがすこぶる便利
  • テンプレート内にJavaScriptを書くのが簡単になった
  • ファイル以外のテンプレートデータも扱える
  • 全米が泣いたフィルタの便利さ

他にも気付いたSmarty3のいい点があれば、また後日書くとして、上の4つはいいですよ!

nocache

例えば、ページ内の一部はキャッシュせず毎回その時のデータを入れたいとか。時刻くらいならJavaScriptでクライアントサイドでやっちまえよって話なんですが、そうでない時に便利です。Ajaxでほとんどいけるけど... キャッシュファイルにもPHPコードが残っておいてくれてるっていうことで、変数つっこんで使えるってのが便利なんすよ!!例えばJavaScriptを使わず、メール本文のテンプレートに使うときとか、トークンとかね!便利そうでしょ?便利ですよ!!

JavaScriptを書くのが簡単になった

HTML内部にJavaScriptを書くことを推奨しているわけじゃないですよ。でも時にJavaScriptを動的に生成したい時がありますよね?そういう時に便利です。JavaScriptもSmartyテンプレートで書いた事があります。静的ファイルじゃないといけないって誰が決めたんですかっ!?(切れ気味)

ちなみになぜ簡単になったかというと、デリミタが直後に空白を許さなくなったからです。正直literalで囲ったところでsmartyの変数を展開するのは面倒臭すぎたのです。でも今はliteralを使うケースは最小限に食い止められますよ!

ファイル以外のテンプレートデータも扱える

ごめん。詳しくはググって。きっとテンプレートデータをDBに持つか、ファイルに持つか、変数に持つかの違いだけど、そこを簡単に扱えるようにしてくれたんじゃないかな?(疑問形)

全米が泣いたフィルタの便利さ

あなたはCakePHPのビューファイル内でh関数を通すのに嫌気が差したことがないだろうか。CakePHPのこと詳しくないから知らないけど、生PHPだとエスケープ処理を必要なだけ通さないとといけません。もしエスケープ処理の方が圧倒的に多いのであれば、Smarty3でエスケープをデフォルトにする方法をご参考にどうぞ。しかし注意!その記事のやり方でも動きますが、正しいやり方は「$smarty->registerFilter('variable','htmlspecialchars');」です。記事の修正をしないと...

日本語のマニュアルがまだだけど

興味ある人は使ってみてね!語学力がある人は翻訳のお手伝いをしてみてはいかがでしょうか!

0 件のコメント: