phpテンプレートエンジンに関して

プログラマのNです。
phpのテンプレートエンジンを、私も最近使い始めたのですが
どれがいいのか使ってみるまではわかりません。
 
とりかかりに、PEARのHTML_Template_Sigmaを使ってみました。
これは正直おすすめできません。
ループするブロック構造の使い回しが一見便利そうなのですが
ブロックを入れ子にしたり、複数ブロックが存在する場合などに
名前が同じ変数がある場合、非常にはまります。
このテンプレートエンジンをつかうと無駄なデバック時間が増えました。
また動作速度も遅いと思われます。
あと、私の使い方に問題があるのかもしれませんが
無限ループなども起きるケースがありました。
絶対に使わないほうがいいと言いたいです。
 
かわりに非常にお勧めできるのがsmartyです。
これは非常に高速です。テンプレートを使わずに
直接phpでhtmlを吐き出しているphpプログラムよりも
smartyを使ってテンプレート化したほうが表示が非常に高速になります。
変数名は$assoc.nameのように連想配列名.キー名のような命名規則になるため名前が重複することもありません。
 
このようなテンプレートエンジンを使う場合、連想配列、あるいは連想配列の配列を作って、それをテンプレートエンジンに渡すという処理を行います。
 
DBのテーブルををフェッチしながら1レコードずつ表示するほうが
一見速いような気がしておりましたが
smartyでは、
1.DBのテーブルを全レコードフェッチ
2.全レコードの連想配列の配列を作成
3.smartyに連想配列の配列を渡す
 
このような処理を作る必要があり、無駄な配列を作ることになり
遅くなると思っておりましたが、実際使ってみると
テンプレート化しないphp処理で、1レコードずつフェッチしながら表示する
処理をsmartyに置き換えたところ非常に高速になりました。
 
使ったことがない人は一度使ってみることをお勧めします。
 

スタッフブログ最新記事

月別 アーカイブ

2021年

2020年

2019年

2018年

2017年

2016年

2015年

2014年

2013年

2012年

2011年

2010年

2009年

2008年

2007年

教育官ブログ
\風俗業界時評/シン・コラム
英語スタッフブログ!