ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Let's PHPコミュの使いやすいテンプレート

  • mixiチェック
  • このエントリーをはてなブックマークに追加
人それぞれだと思いますがテンプレートを使うならどれがいいのでしょう。
PHP-usersでも検索してみたんですけど矢張りSmartyを使うのが無難でしょうか。
SmartyとかHTML_Template_ITとか、何を基準に選んでますか?


自分はPHP4テンプレートクラスライブラリ改(http://www.daiwakantei.co.jp/pc/tmpl2sa.html 消えてる?こういうことがあるのでSmartyとかPEARのものを使った方がいいのかなぁと思い始めてます)が使いやすかったのでささっと選んでからしばらく使っていますが。。

今は http://www.stackasterisk.jp/tech/php/phpMvc01_01.jsp これを参考に Result クラスに変数を放り込んだらテンプレートに変数が割り当てられるようにして使っています。ループも
'制御文字' => array('var1', 'var2' , ...)
のようにして使ってます。

ここまで書いて気付いたんですが結局これを1度作ってしまうと使いやすさはどれも同じになって性能面での違いだけを気にしていればいいことになりますね…。

PHP4テンプレートクラスライブラリ改の場合は1000x10のループで表示に数秒かかってとても見れる状態じゃなかったんですがどのテンプレートも変数が多い場合は仕方ないんでしょうか。
(また書きながら http://www.php.gr.jp/seminar/20030830/doc/beginner-template.pdf これを見つけたんですが上手くテンプレートを使わない方法で、または単純な変数出力のクラスを自分で作るのも考えないとですね。。)

コメント(29)

Smartyマンセーです。

(1)最初に使ったPHPTemplateだった
(2)日本語ドキュメントが充実
(3)気付いたら結構みんな使っている⇒情報源に困らない

"PHPアクセラレータと一緒に使うと旨い"とか聴いたのも、使い続けている理由でしょうか。
小規模なものにはPHP開発日誌さんのHtmltemplateを使ってます。テンプレートエンジンは国内産海外産含めて色々試してみたり、自分でも作ってみたんですけど;中でもPHP開発日誌さんのが一番扱いやすかったので利用させてもらってます。軽いし、導入しやすいし、融通が利く!大規模になってくると、物足りなる事もありますが、大抵の場合はこれで十分な気がします。(自分で作った物も結構使いやすいかなーと思ったんですが、PatTemplate同等の動作速度(^―^;)
まだまだPHPは始めたばかりなのでSmarty以外は知らないのですが、とりあえずはこれで困ってません。

1.制御構造がそれなりに充実してる
2.出力に対してフィルタがかけられる(modifier)
3.フィルタを自分で作成できる

特にmodifierはプログラム側で表示を考慮してデータを加工せずに済むので重宝しますね。

ちょっと動作が重いかなーという気がしなくもないけど、キャッシュとかもあるんで、まぁなんとかなるかという感じ。

#SmartyはPerlのTemplate-Toolkitといい勝負だなーと思った:)
Smartyが重い!!ってゆーひとはこれを試してみてください
http://freshmeat.net/projects/smarty-light/
とか紹介しつつダウンロードもしたことないですが(笑
つまり人柱どーぞです;-)
Smartyのmodifierは例えばこんな感じに使います。

  {$hoge|escape}

こうすると$hogeの内容をHTMLエスケープ(内部的にはhtmlspecialchars?)して出力してくれます。
他にもlowerやnl2brなどを指定することで相応の効果が得られますし、標準関数も暗黙的に使えるらしいのでnumber_formatで数値を3桁カンマ区切りで出力なんてことも出来ます。
(独自のmodifierを作成することもできます)

このような表示のための加工はテンプレート側で出来ると良いのではないかと。
HTML_Template_Flexyいいっすよ。
http://pear.php.net/package/HTML_Template_Flexy

テンプレート側に特別なにも記述しなくても、
formタグ内のエレメントが制御できます。
はじめまして。
最近PHPを始めた。
サーバもレンタルなので、
まだSmartyしか使ったことがありませんが、
テンプレート側でこれほどの制御ができることに驚きでした。
他にもテンプレートクラスライブラリがあるって知って
さらに驚きです。
個人の小規模サイトなのでSmartyで十分事足りるのですが、
参考にさせて頂きます。
htmltemplateは上で仰られているとおり、エラー処理やelse等の分岐処理が弱い所ですね。そう考えると完全デザイナー向けのテンプレートエンジンではないかもしれません。
私はほとんどデザインとロジック両方自分でやってしまう為エラーなどの処理は自己解決してしまうのであまり不便さを感じていませんでした(^-^; テンプレートも自分で作成し、簡単に済ませてしまいたい人向けかな?
他のテンプレートエンジンと比べると簡易的なもので、先に言ったとおり機能を求めると物足りなくなりますが…。
しかし、構想などが個人的にとても好きなので、これがどんどん使いやすくなって欲しいなぁと言う期待をしています。

Smartyは中大規模なスクリプトで良く使用していますが、ライト版があったのは知りませんでした。早速試してみよう。
ライト版落としてみましたが、オリジナルとの互換性を損なう仕様変更があったりして、単純に機能削減版という見方はできない気がしました。

求める機能にその辺がかぶらなければ問題ないと思いますが。
水樹 さん>>
人柱どうもです(笑
機能的デグレードだけじゃなくて仕様変更ってのはよくないすねえーー

俊輔 さん>>
若干古いですがWEB+DBのVOl.18で小山さんが執筆されていたと思います.
25日にWEB+DBの総集編でるのでついでに買っちゃうとか(笑
ドキュメントも何もないですが。。。。
http://sourceforge.jp/projects/kaho/
を数年前から作ってます。
htmltemplateからの派生物ですが、今は独自のエンジンで動いてます。
ドキュメント書いたら広めようと思いつつ、もう3年たってます(^^;。
誰か書いて(^^;;;
HTML_Template_IT をずっと使ってます。
シンプルで便利だと思うんだけどなぁ、世間の評価はどうなんだろう?
私も HTML_Template_IT を、ず〜っと使ってます。
シンプルなテンプレートなのでプログラムの分からないデザイナーさんでも簡単にカスタマイズできてオススメです。
今更ですけど、思いつきで改造したの放置してます。。。
http://shigematsu.org/index.php?Development%2FPHP%2Fhtml_template
俊輔 さん>>
お買い上げありがとうございまーす(チーン
PHPだけでみると関係ある率がやっぱり少ないですからねぇ > WEB+DB
MVCでモデルからもってきた生の値を
表示用に加工する作業というのは、どうしても必要なわけですが
そういうのはjavascriptでやるというのはどうでしょうか?

そうすればテンプレートエンジンに必要な機能は
「変数表示」と「繰り返し」のみに絞られると思うのです
変数表示「しか」しないライブラリを自作して使ってます。25行程度のものすごく単純なモノです。もし「テンプレートに制御構造はいらない」という人がいれば使ってみてください。

http://kaede.to/~canada/doc/heretemplate-class-php
解説ページを策定してますです。
http://dozo.matrix.jp/pear/index.php/PEAR/HTML_Template_Flexy.html
中身がまだ全然ないですけど。
よかったらどうぞ。


更新が遅くてすみません。m(_ _)m

ログインすると、残り11件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

Let's PHP 更新情報

Let's PHPのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング