【PHP】 Smarty 隔離スレ 【テンプレート】 at PHP
[2ch|▼Menu]
[前50を表示]
100:nobodyさん
08/05/09 16:58:56
>>98
・escape済の変数をassignする
・もしくはdefault_modifiersにescapeをいれとく

お好きなほうでどうぞ。
後者は特定の条件で不具合が発生するので、自力で修正する自信ないならお勧めしない。

101:nobodyさん
08/05/10 08:34:44
なんで肝心な不具合とかが修正されないんだろ。
日本とは感覚が違ってて必要とされてないのかな。

102:nobodyさん
08/05/10 09:46:22
Smarty3でも出ない限りは、このままなんじゃね?

103:nobodyさん
08/05/15 19:11:15 ss9CEhce
JSmartyでもry

104:nobodyさん
08/05/19 00:22:26
Smartyの残骸に悩むPHP土方の皆さんごきげんようw

105:nobodyさん
08/05/21 08:04:10
普通に、外部モジュール化したHTMLテンプレートを読み込んで、
正規表現で独自タグを変数に置換して出力。
っていう古式ゆかしきCGI技じゃいかんの?
Smartyの3〜4倍は速いぞ。

106:nobodyさん
08/05/21 08:06:14
まだこういう馬鹿いるのかw

107:nobodyさん
08/05/21 08:12:24
なんでバカなんだ?
ちゃんとロジックとデザイン分離できてるじゃん。

そもそもPerlとか他の言語のテンプレートエンジン全般に言えるけど、
こういうシンプルな目的だったのに、
万人の要望に応えるうちに無駄に富豪化して、
ムーアの法則頼りで突っ走ってるのが、今のテンプレートエンジンだろ。

108:nobodyさん
08/05/21 09:50:33
テンプレートエンジンを使いこなせてない人の発言だなぁ・・・。

デザインとロジックの分離レベルにもよるけど、
ビューで処理すべきロジックもあるって事だ。


if
foreach
include
|escape

あたりは最低限必須だろ。

109:nobodyさん
08/05/21 10:14:55
>107がそう思ってるならその自分のやり方を貫けばいい
>108がそう思ってるならその自分のやり方を貫けばいい

自分の考えを押し付けるのが一番うざい。

110:nobodyさん
08/05/21 12:49:26
そう、自分がやりやすい方式で作ればよろしい
もっとも>>108の挙げてる機能くらいは無いと確かに困るというか
ロジック側でHTMLを吐く必要性が出てくるので嫌

111:nobodyさん
08/05/21 12:49:45
そういう問題ではない。

実装の統一化は今後の開発効率を左右する重要な課題。
ただ、Smartyに何かが足りないのは確か。
結局どこかで独自に使い方を工夫しないといけない場合が出る。

特にescape。

112:nobodyさん
08/05/21 13:06:06
おまいは全世界を統一したい野望でもあるのか?
統一すれば効率はいいだろうが、そんなツマラン世界は御免こうむる

113:nobodyさん
08/05/21 13:44:07
>>109
おまいは、現場でコーディング規約とかに文句言うタイプだろ。

114:nobodyさん
08/05/22 01:18:43
文句言うべきときは言うべきだと思う

//使うなって言われる噴飯モノの現場もあるしな
しかも理由が「/**/と入れ子にできちゃうから」という意味不明具合

115:nobodyさん
08/05/22 01:48:09
>>112
趣味と仕事を兼ねるからツマランのじゃね?
仕事と割り切って出世する事を考えていこうよ。

116:nobodyさん
08/05/22 02:33:05
出世考えるならプログラマー辞めて「プログラムも判る企画/営業」に異動促す努力したほうがええで
いくらコード練っても、中/印/ベトナム経由の「安いだけの人材」がケツ噛み続ける時代
会社としてのポストがなくなる

「MFC超得意だからMSなくなるまでは困らん」と言ってた先輩が潰れて実家の本屋継いだぜ
「PHP? 新し物好きは迷惑だね。perlで一生食っていけるよ」と豪語してた
馬鹿女は、アルコールで精神病院を経て休職後、そのまま元彼と寿退社してリタイアだ。
一番頼れる仲間は某MTAのドキュメントにも名前を連ねる我が社の誇りだった人
今はビル屋上緑化を主とする企業のヒラ営業に転職しちまったぜ。

毎日PHPに限らずコード書かされてて思うが、
なんかそういうドロップアウトした筈の彼らがみんな幸せそうに見えるんだ
なんでなんだろう

なんの話だっけ

117:nobodyさん
08/05/22 12:54:15
オレは給料泥棒 まで読んだ

118:nobodyさん
08/06/01 12:02:10 hyBgIur5
Smartyはプロの世界でもよく使われるんですか?

119:nobodyさん
08/06/01 17:37:18
SmartyのないPHPなんてレモンのないコーヒーですよ。

120:nobodyさん
08/06/01 18:54:42
なぬ?

121:nobodyさん
08/06/02 03:03:23
Smartyを始めたら背が5cm伸びて、彼女が出来ました。

122:nobodyさん
08/06/02 03:08:23
OpenPNEが一日も早くSmarty外ししてくれることを願うよ。つうか俺がコミットすりゃいいのかな。

123:nobodyさん
08/06/02 04:38:00
>>122
そんなことしたら背が縮んで、彼女が離れていくじゃないか。

124:nobodyさん
08/06/02 05:30:17
嫁と分かれたいケースに最適ですかね

125:nobodyさん
08/06/02 05:53:12
>>124
リンクしてコンパイル済みなら分離できません

126:nobodyさん
08/06/02 06:36:26
ライブラリと生活モデル、および資産の依存性を分離して
再コンパイルするしかない訳ですね。
わかります。

127:nobodyさん
08/06/02 18:15:50
再婚パイルをお考えですか。

128:nobodyさん
08/06/03 04:20:49
GirlFriend Pluginがファイル破損しちゃいました。
どこで再配布してますか?

129:nobodyさん
08/06/03 08:16:30
新しいPluginは古いものと互換性がないので、
関連ファイルは全部削除しないとダメだよ

130:nobodyさん
08/06/03 14:28:35
まさかこのスレでふっきれるとはおもわなんだ。
貴様らありがとう。

131:nobodyさん
08/06/04 22:39:07
ウチ、すごいぞw
俺が来るまで何年もプログラミング初心者が入ってきては辞めての繰り返しだったみたいで、
機能つけたしが全てSmarty設置で実現されてるwww
サイトのいたるところにvarだのbinだのがあるwwww
勘弁してくれwwww

132:nobodyさん
08/06/04 22:53:01
日本語でおk

133:nobodyさん
08/06/05 12:25:23
業務でSmartyを使っているのか...

134:nobodyさん
08/06/05 13:57:52
>>134
そりゃ背が伸びて彼女ができるなら使うだろう。

135:nobodyさん
08/06/05 14:50:40
業務だからこそ使うんじゃないの?
逆に趣味とかじゃ使いたくない。

136:nobodyさん
08/06/05 21:38:50
趣味でPHPはないわ。
俺は半年ほど休んでた時期に趣味で遊んだのはSchemeだけだった。
実務(共同作業)がSchemeでも進められるなら、迷わずこれを選ぶ。
しかし近年の現実はどいつもこいつもPerlすら宇宙語だからな。PHP一択にならざるをえない。

137:nobodyさん
08/06/06 13:01:48
PHP + Smarty を使って、お客専用のCMSモドキより、
MovableType4.1 + αカスタマイズのCMSモドキの方が、お客には受けが良かった上に見積もりも良かった!

業務でSmartyを使うなら、隠れて使いたい

138:nobodyさん
08/06/06 21:00:18
そりゃデザインのおかげじゃねーの

139:nobodyさん
08/06/06 22:14:37
見た目以外に判断材料があるやつなんて、最低でもPHPを書けるレベル以上のやつに限られる。

140:nobodyさん
08/06/06 23:39:38
>>139
いや、判断材料としては操作感も重要だけど、使う側と作る側のロジックが違うから
どう考えても不条理な操作が要求されたりするんだよなあ。

もちろん使う人のために作るんだからお客様優先なわけだが、
将来コケるのが目に見えてるから困る。



141:nobodyさん
08/06/06 23:48:35 astBuURj
現在のバージョンは、
・セールスレターテンプレート集(68通)
・売れるセールスレターの書き方
・ダイレクトメールワークシート
・穴埋め式Eメールテンプレート(14通)
・究極のセールスレターツールBOX
など、合計で500ページ近いパッケージとCDROMが
セットになっています。


ただ、この無料お試しはだいぶコストがかかるらしいので
500個の限定だそうです。



興味があればこちらをクリックしてください。
URLリンク(www.123marketing.jp)



142:nobodyさん
08/06/06 23:49:48
>>140
それはあなたが低スキルだからでしょうね。コケて逃亡するのはあなたではないでしょうか。

143:nobodyさん
08/07/10 05:42:24 NxX5vAdg
Smartyで、テンプレート内で送られてきた変数の簡単な計算できませんか?

{$value + 3}など。
試してみたのですが、{$value}の値がそのまま出力されます

144:nobodyさん
08/07/10 09:09:32
つマニュアル

145:nobodyさん
08/07/10 21:23:41
折角公式に日本語のマニュアルがあるというのに全く。

146:nobodyさん
08/07/21 01:40:20 8uak49aQ
■ MySmarty.class.php
<?php
require_once("Smarty/Smarty.class.php");

classMySmartyextendsSmarty {

publicfunction__construct() {
$this->Smarty();
$this->template_dir="./data/templates";
$this->compile_dir="./data/templates_c";
}

}
?>

■ test.php(MySmarty.class.php と同じディレクトリ) → 正常に動作
<?php
require_once( './MySmarty.class.php' );
$o_smarty = new MySmarty();
$o_smarty->display( "main.tpl" );
?>

■ dir.php(MySmarty.class.php の直下のフォルダ) → エラー
Warning: Smarty error: unable to read resource: "main.tpl" in C:\hoge\Smarty\Smarty.class.php on line 1092

<?php
require_once( '../MySmarty.class.php' );
$o_smarty = new MySmarty();
$o_smarty->display( "main.tpl" );
?>

これは仕様なの?

147:146
08/07/21 01:41:40 8uak49aQ
MySmarty.class.phpで半角空白がなくなっていますが、
2chにコピペするときの変換ミスで、実際は正常に動いています。

148:nobodyさん
08/07/21 01:47:07
仕様

149:146
08/07/21 01:52:13
>>148
ええ!? マジすか……。
それじゃ、ディレクトリが多数ある場合は、
全てのディレクトリにMySmarty.class.phpが必要ってこと?
プラグイン自作してどうにかなる話じゃないですよ?w

150:nobodyさん
08/07/21 02:24:44
お前は何を言ってるんだ

151:nobodyさん
08/07/21 03:18:45
>>150
いや、文字通り、Smarty.class.phpを継承した設定済みのMySmarty.class.phpを
直下以外のディレクトリに置くとtemplatesディレクトリの認識がしなくなるのが仕様だったら、
多数のディレクトリ分けしてると超大変だよね、って言ってるんだけど。

>>146が仕様で間違いないのなら、俺は何か間違ったこと言っているか?


152:nobodyさん
08/07/21 09:54:38
さて問題です。

dir.phpからみて
$this->template_dir="./data/templates";
$this->compile_dir="./data/templates_c";
このディレクトリはどこでしょう?


153:nobodyさん
08/07/21 12:55:50
>>152
dir.phpは、MySmarty.class.phpを呼び出しているだけで、
dataディレクトリは、MySmarty.class.phpから見た相対パスだから、
dir.phpから見たdataディレクトリの場所は、関係ないと思うけど。

そもそも、なぜか絶対パスを受け付けてくれんのよね。エラーになる。

154:nobodyさん
08/07/22 08:41:57
>そもそも、なぜか絶対パスを受け付けてくれんのよね。

こっちのほうが深刻というか根幹な問題をかかえてる気がするのだが・・・

155:nobodyさん
08/07/24 14:01:26
PHPは実行されてるファイルの位置がカレントディレクトリになるから……

156:nobodyさん
08/07/24 21:30:17
$template_dir
これは、デフォルトのテンプレートディレクトリの名前です。 ファイルのインクルード時にリソースの種類を指定しなかった場合は、
このディレクトリから探します。デフォルトは ./templates で、 これは、実行しているスクリプトと
同じ場所にある templates/ ディレクトリを探すということです。

という文章からすると「実行しているスクリプト」が基準になるということみたいだな。

157:nobodyさん
08/08/01 21:13:05
Smarty廃れましたなぁ。
そんなことより、PHPもJSPのように
カスタムタグが使えたらいいのにね。

158:nobodyさん
08/08/02 02:29:09
廃れてないけど

159:nobodyさん
08/08/02 19:51:20
スレ立て半年でこの程度の伸びだったら、十分廃れてるだろw
ぶっちゃけ、必要な機能だけ絞り込んで自分で作った方がいい。

160:nobodyさん
08/08/02 19:56:13
いいというのはどういう点で?

161:nobodyさん
08/08/03 10:51:13 4+uLL3BX
でも、テンプレートって言えば、もうSmartyでしょ。

162:nobodyさん
08/08/03 11:32:25
テンプレート機能だけ使いたいならSmartyを使うか、生phpで済ませる
各種FW使うなら同梱されてるテンプレートエンジンを使う

163:nobodyさん
08/08/04 11:49:55
「index.php#xxx」

smartyで↑の「xxx」を取得する方法ってありますか?


164:nobodyさん
08/08/04 22:09:03
>>163
例で示されたxxxの部分は通常サーバ側には送信されることはない。
なのでサーバサイドで動いているsmartyから取得することは不可能。

165:nobodyさん
08/08/05 16:01:03
>>164
ぎょぎょ!
確かにその通りでした。


166:nobodyさん
08/08/06 21:40:18
仮に送信されるにしても、smartyじゃなくPHPから取ると思うんだけどなあ。

167:nobodyさん
08/08/07 20:08:18
テンプレ内で{}使う方法ド忘れした誰かHELP

168:nobodyさん
08/08/07 20:16:02
URLリンク(www.smarty.net)

169:nobodyさん
08/09/04 10:40:28
{include}
で出力された結果が複数行にわたる場合、全ての行に対してインデントさせるにはどうすればいいですか?
{"\t"}{include}
とかしても先頭の行だけしかインデントされなくて

170:nobodyさん
08/09/04 11:33:28
全部divで囲んでCSSで

171:169
08/09/04 12:15:47
ああ、すみません、出力されたソースでの話です・・・

172:nobodyさん
08/09/04 12:25:57
変数に格納してindentかけるとか?

173:169
08/09/04 21:08:05
すみません、変数の宣言はphpファイル側でするものですか?もしそうなら、
配布されているウェブアプリがsmartyを使っているのですが
配布ファイルのバージョンアップの際に面倒なことにならないかな・・・と
というかphpはわからなくて
smartyも触るのは初めてでマニュアルを見ながら触っているのですが・・・

インデントするのも難しいですね
レスしてくれた方々、ありがとうございますm(_ _)m

174:nobodyさん
08/09/04 21:11:12
Smartyの前にやるべきことが・・・

175:nobodyさん
08/09/04 21:31:16
デザイナにはロジックを触らせないコンセプトのSmarty

176:169
08/09/05 00:54:49
すみません、includeのassignでできました
レスしてくれた方々、ありがとうございますm(_ _)m

177:nobodyさん
08/09/24 00:32:25 KMdxurbq
JSPのカスタムタグがPHPにもあればいいのにな。
タグとクラスが一対一になってるのが素晴らしい。

178:nobodyさん
08/09/25 00:09:46 lXgzxRnB
すみません、教えてください。

<p>名前:{$name}</p>

テンプレートに上記のような記述をしたのですが、
「名前:」の部分が化けてしまいます。
テンプレートファイルはEUCで保存してあります。
原因としてはどのような事が考えられますか?

179:nobodyさん
08/09/25 01:02:44
>>178
テンプレートをコンパイルしたあとのPHPファイルを見てみれば?

180:178
08/09/25 02:06:16
>>179
見ましたが、既に化けてます・・・
SmartyがEUC以外の文字コードで
テンプレートを処理しているということでしょうか?

181:nobodyさん
08/09/25 02:17:37
phpの文字コードがあってないんじゃない?

182:178
08/09/25 02:47:42
>>181
あ、Smarty.class.phpがカスタマイズされていました。
SJIS→EUC→SJISみたいな変換してる。
お騒がせしました。すみません。
既存のものとは別にSmartyを入れます。

183:nobodyさん
08/09/26 16:36:37 NKaAViJV
template_cの中身を全部削除しても、template_cの中身を見に行こうとして、
そんなファイルないよっていうエラーが出るんですが、なぜでしょうか?
ためしに、force_compileをtrueにしてみましたが、やっぱり見に行ってしまうようです。

184:183
08/09/26 17:02:20 NKaAViJV
ちなみに、全く同じものを1つ下の階層にコピーすると動きました。
これはいったい・・・。

185:nobodyさん
08/09/26 17:16:56
パスがおかしい

186:nobodyさん
08/09/26 17:23:10 NKaAViJV
>>185
すいません、重要な点を忘れていました。
その別ディレクトリでコンパイルされたテンプレートを、
動かない方のtemplate_cにコピーしてやると、動くのです。
なのでパスが違ってはいないです。
全く謎・・・

187:nobodyさん
08/09/26 17:49:10
そんな断片的な情報では何も判断できないけど謎だね

188:nobodyさん
08/09/26 23:07:17
smartyってsjisだとエラー起きませんでしたっけ?
さっきひさぶりにやってみたらsjisでも問題なく動いた(?_?)

189:nobodyさん
08/09/27 01:11:46
>>188
自己解決しました

190:nobodyさん
08/09/30 23:16:57
>>189
自己解決の詳細を報告しる!

191:nobodyさん
08/10/01 16:25:04
>>190
気合で解決!

192:nobodyさん
08/10/02 16:19:26
preFilterでテンプレートの文字コードを内部文字コードに合わせる。
postFilterで元に戻す。

これは基本だろう。

193:nobodyさん
08/10/03 12:27:37
みんななんでSmartyなんて使ってるんだ。意味がわからん。

194:nobodyさん
08/10/03 19:01:42
名前:<?php echo $name ?>
よりも
名前:{$name}
のほうが書きやすくて可読性も高いから。


195:nobodyさん
08/10/03 19:14:40
それだけじゃなかんべw それだけしか使ってないならもったいないw

196:nobodyさん
08/10/03 19:36:59
<?=$name?>

197:nobodyさん
08/10/03 20:29:13
short_tagwwww

198:nobodyさん
08/10/04 01:57:42
Smarty(というかテンプレートエンジン)の便利さを解らない奴は、
素人or中級者未満だと自覚した方が良いよ。


199:nobodyさん
08/10/04 13:26:02
>>198
PHPそれ自体がテンプレートじゃん
わざわざSmartyを使う意味がわからん

200:nobodyさん
08/10/05 01:31:28
>>199
意味がわからんというのは、君のやってる事のレベルが低いからだと思うよ。

PHP単体でキャッシュ処理や、ループ処理、エスケープ処理、携帯、PC両対応を想定したテンプレートを書いてごらん。
PHPはテンプレートっぽく使えるだけで、実務的にテンプレート管理を行おうとしたらかなりの量のコーディングが必要になってくる。
結局はテンプレートエンジンを作る必要はあるんだよ。


201:nobodyさん
08/10/05 01:40:36
・PHP
<?php echo strlen($var) ? preg_replace("/[\r\n]/", "<br />", htmlspecialchars($var)) : "hoge";?>

・Smarty
{$var|escape|nl2br|default:"hoge"}


202:nobodyさん
08/10/05 06:55:52
なぜphpのほうでnl2br使わんの

203:nobodyさん
08/10/05 11:15:11
modelとviewを分けたいからじゃないの

204:nobodyさん
08/10/05 18:38:44
>>203
どういうこと?

205:nobodyさん
08/10/06 03:08:54
PHP単体で使う人は、 >>201なりPHPで書いたコードを想定してみれば良い。

「そんなコードを書く状況は100%ねぇよw」って言うなら、Smarty使う意味無いけど。

206:nobodyさん
08/10/06 08:52:51
>>202
>なぜphpのほうでnl2br使わんの
知らなかっただけだろ。
あと preg_replace("/[¥r¥n]/", "<br />") だと "¥r¥n" があったときに <br /><br /> になっちゃうから
ここは preg_replace("/¥r?¥n/", "<br />") だよな。旧Macは無視したとして。

nl2br知らないわ、正規表現間違うわじゃ、底がしれる

207:nobodyさん
08/10/06 08:55:31
>>200
>PHP単体でキャッシュ処理や、ループ処理、エスケープ処理、携帯、PC両対応を想定したテンプレートを書いてごらん。

キャッシュは専用ライブラリを使う
ループ処理はPHPのforeachやwhileをそのまま使う
エスケープ処理はhtmlspecialchars()を使うか、短い名前で定義する
携帯、PC両対応はSmartyに備わってる機能ではない




208:nobodyさん
08/10/06 14:44:20
>>207
全部Smartyで出来るじゃんw
使わない理由と、他のライブラリを使う理由を述べよ。

209:nobodyさん
08/10/06 14:59:38
>>204
改行が必ずしも<br />とは限らないからだろ。
ViewがHTMLとは限らない。

210:nobodyさん
08/10/06 15:10:02
>>209
上段はHTML以外も想定してるけど
下段はHTMLのみ想定しているってこと?

211:nobodyさん
08/10/06 17:03:58
>>210
Smartyのnl2brは拡張&動作の置換が可能。

212:196
08/10/06 19:40:07
全部関数書けばいいじゃん

<?=h(e(n($name)))?>

213:nobodyさん
08/10/06 20:27:56
グローバル関数っすかwww

そんなの結局は劣化車輪の再発明でしかないし、Smartyを使わない理由を述べよ。

214:nobodyさん
08/10/07 12:25:11
> 車輪の再発明...
実用レベルでは、してはいけない「車輪の再発明」だが、
言語の学習段階ではレベルアップのために、あえて「車輪の再発明」は必要...

論点ずれた。スマゾ

215:nobodyさん
08/10/07 14:30:17
そんな段階では「発明」でも何でもないし、する必要も無い。
物理習うときにニュートン方程式の再発明から始めるのか?

216:nobodyさん
08/10/07 15:03:12
物理では再発明というか、再発見をおのおのの学生がするものじゃないの?
ぶつりほうそくとは発見ではなく自然の理解であるからして。

同様に、対象を理解するために先人の真似をするのは無駄じゃない。
物理の授業でニュートンがやった実験やるのはべつに遊びってわけじゃない。


217:nobodyさん
08/10/07 15:10:28
初心者の学習段階でよくやるアレは「車輪の再発明」の域にも達してないってことさ。
学習するためにやるものじゃない。

218:nobodyさん
08/10/07 18:26:45
論点ズレすぎ。

車輪の再発明自体は否定も肯定もしないけど、
>>212 とか、再発明の域にすら達してないだろ。

単にSmartyを勉強するのが面倒だから、批判してるだけに見えてしまうんよ。
実際そうなんだろうけどw

219:nobodyさん
08/10/07 21:01:42
patTemplate ってはやってるの?

220:nobodyさん
08/10/08 08:35:32
>>208
>全部Smartyで出来るじゃんw
>使わない理由と、他のライブラリを使う理由を述べよ。

逆だよ。PHPでできるのに、なんでSmartyを使う必要があるのってこと。

221:nobodyさん
08/10/08 08:44:32
>携帯、PC両対応はSmartyに備わってる機能ではない

だからなんなん?
テンプレートエンジンを利用すれば簡潔に記述できるのは事実だろ


222:nobodyさん
08/10/08 14:08:02
>>220
PHPで関数集なり、テンプレートエンジンもどきを作るくらいなら
なんで既存の枯れはてたSmartyを使わないのって事。


まぁ >>212みたいなのを見ても尚、PHPで同じ事が出来る。
と感じているのであれば、何説明しても無駄だろうけどさ。
テンプレート関数毎回作って、毎回デザイナに説明して、毎回デバッグしてるんだろうねw

223:nobodyさん
08/10/08 16:35:41
ああ、、、
だから毎回デスマーチになるのかw

224:nobodyさん
08/10/09 09:57:36
smartyとかテンプレートエンジンのいいとこは
デザイナに渡すときも
あとはよろしくねーって言えること。
マニュアルもちゃんとしてるし。

225:nobodyさん
08/10/09 11:10:47
うちの場合ページが先に出来上がってくるから、それを元にtplを作ってるな。
それでもPHPベタ書きよりはよほど楽だしあとで修正しやすい。



226:nobodyさん
08/10/09 16:09:53
デザイナに include と 変数 の使い方覚えて貰うだけでかなり楽になるよね。


227:196
08/10/09 23:38:15
>>222
> PHPで同じ事が出来る。

逆だよ。Smartyが前提なのではない。
素のPHPに対してSmartyをわざわざ追加する必要が無い、ということ。

しかしほんと、化石みたいなスレだな。
Smarty信者はまだPHP4とか使ってるのかね。


228:nobodyさん
08/10/10 00:21:33
smartyってもうはやってないの?

229:nobodyさん
08/10/10 01:12:51
>>227
必死すぎwww
196のコードなんでPHP4とか以前にPGとしてウンコのレベルだろww

君が無知なのはわかったから
PHP単体じゃテンプレートエンジンとして機能しないのに、
「何故、Smartyは必要ないのか」を具体的に答えてくれよな?

もしSmarty云々じゃなくてテンプレートエンジンがいらねーって事なら論外だ。
初心者スレから出直してこい。


>>228
普通に使われているし、需要も多いよ。
先月にも解説新刊が出た。

230:196
08/10/10 09:49:15
>>229
答えは196に示してある通りなんだが。

俺もSmartyは仕事で3年くらい使ってたよ。

> 「何故、Smartyは必要ないのか」を具体的に答えてくれよな?
> もしSmarty云々じゃなくてテンプレートエンジンがいらねーって事なら論外だ。

じゃあ俺はお前さんにとって論外らしいので、議論の余地は無いな。

SmartyじゃないとMVCが守れない開発者は現場では使えない。

もしお前さんがデザイナーなら、PHPの基礎くらい勉強しろと言いたくなるな。
うちのWebデザイナーはみんなPHP触れるよ。

> 初心者スレから出直してこい。

ここよりレベルの低いスレがあるのか。それは恐ろしいな。


231:nobodyさん
08/10/10 10:34:43
>>225
それだとあとでデザイン修正があったときとかめんどくさくない?
もらったデザインを前のとdiffかけて
差分をtplに反映とか。

ただプログラマが一元的に管理してたほうが
セキュリティ的にはいいよね。
escape忘れただけで大変なことになることもあるし。


232:nobodyさん
08/10/10 15:47:13
196やら212のコードを記述するぐらいなら俺はSmarty使うよ。

233:nobodyさん
08/10/10 17:37:52
196が答えか、、、終わってるなw
こんな輩が得意げに宣ってるからPHPはウンコだって言われるんだろうな。

234:nobodyさん
08/10/10 17:44:35
少なくとも俺の現場ではショートタグは使えない

235:196
08/10/10 23:28:20
212に不満があるのは理解出来るけど、196は良いと思うんだけどな。
209の要件を満たす方法の一つが212で、それは211と大して変わらない。

だけど196は、MVCさえ理解できれば、209で述べられている要件も、
201よりスマートなコードにする事も、満たすことが出来るんだ。

なんでか知らんけど、Smartyを信じる人は知識があって偉い、
そうじゃない人はみんな素人だ、という反論しか戴けないのは残念だな。

>>234
ストローク数の少なさと可読性は若干損なわれるが、
それでもSmartyよりは<?php echo $name ?>のほうがマシだと思う。


236:nobodyさん
08/10/11 00:30:31
>Smartyを信じる人は知識があって偉い、
>そうじゃない人はみんな素人だ

誰もそんな事言ってないから。
君がSmartyを否定するだけの根拠を持ち出さないから素人扱いされちゃうんだよ。
(まぁ、テンプレートエンジンを否定してる時点で底が知れてるけども。)

196が良いって、グローバル変数かつ、ショートタグかつ、エスケープ無しがView的にOKって事かい?
それなら、早急にWEB系PGを辞めた方が良い。

212の記法に疑問を持たないのであれば、
やはり、早急にPGを辞めた方が良い。

一応聞いとくけど、OOP&MVC的に開発する時、どんな構成で作ってるの?
フレームワークとかライブラリとか教えてよ。
まさかhtdocs以下に.phpファイルを量産してたりしないよね?


237:nobodyさん
08/10/11 06:53:44
>それでもSmartyよりは<?php echo $name ?>のほうがマシだと思う。
ほらほらこんな書き方すると単にSmartyを叩いてるようにしかみえないよ

196が同じ人なら、その内容からとてもSmartyを理解してる人には思えないんだよね

>196は良いと思うんだけどな。
PHP(web)初心者だよね(笑)


238:nobodyさん
08/10/11 12:06:19
いやだから、PHPで同じことができるのにわざわざSmartyを使う理由ってなに?
今まででたのは、<?php echo $var; ?> が短く書けることぐらい?

SymphonyとCodeIgniterを使って開発したけど、どっちもSmarty使わなかったし、それで何の問題もなかった。

>>229
>「何故、Smartyは必要ないのか」を具体的に答えてくれよな?
・SmartyでやろうとしていることはPHPでできる
・Smartyは学習コストがかかる
・Smartyは遅い
・Smartyのテンプレートでエラーがあった場合、その行番号がずれている

で、Smarty使う理由って何?
>>229は他人を無知よばわりしてるから、おれの知らないSmartyの利点ってやつを教えてくれ。

239:nobodyさん
08/10/11 12:07:00
まちがえた、Symfonyね。


240:nobodyさん
08/10/11 22:10:00
・SmartyでやろうとしていることはPHPでできる
→ PHP単体では出来ない。別個にエンジンを作る必要がある。
  キャッシュ、フィルタ、プラグイン、コンフィグをPHP単体でどうやって書くんですか?
  
・Smartyは学習コストがかかる
→ 少なくとも独自エンジンやPHPを覚えさせるより、簡単で学習環境も整っている。

・Smartyは遅い
→ 同様の機能(キャッシュ、構文、プラグイン等)を実際に実装して比較してみたかい?
  スレ頭のピュアコードより5倍遅いとかいうのを真に受けてるだけだろw
ビジネスロジック層と比べれば軽い処理なので、システム的には対した差はでねーよw
 
・Smartyのテンプレートでエラーがあった場合、その行番号がずれている
→ ずれてないよww エラー英文すら読めないレベルかwwww
  そもそもPHPのテンプレートエラーはシステムに障害をきたすし、論外だ。

→PHP単体でなく、Smartyを使う理由?
・テンプレートエンジンとして必要な機能を備えている
・拡張がし易い
・デザイナのコードがシステムに混入しない
・PHPテンプレートエンジンとしてはメジャーで扱える人が多い


>SymphonyとCodeIgniterを使って開発したけど、どっちもSmarty使わなかったし、それで何の問題もなかった。
良かったね。
僕らは楽して堅牢なシステムを作るためにSmartyを使ってるんだ。
SymphonyとCodeIgniterの利点を教えて欲しいな(^o^

241:nobodyさん
08/10/13 03:31:41
cakeを上げないあたりにひねくれものな感じがプンプンするぜ

242:nobodyさん
08/10/13 10:28:16
Smartyがデフォルトのテンプレートエンジンになっているフレームワークってありますか。

243:nobodyさん
08/10/13 11:11:34
>>240
>・デザイナのコードがシステムに混入しない

いくらなんでもこれは冗談でしょ。

244:nobodyさん
08/10/13 11:17:06
>>242
普通は自分で選ぶ

245:nobodyさん
08/10/13 11:31:25
>>240
>→ PHP単体では出来ない。別個にエンジンを作る必要がある。
>  キャッシュ、フィルタ、プラグイン、コンフィグをPHP単体でどうやって書くんですか?
PEARにいくらでもライブラリあるけど。プラグインは普通に関数でいいだろ。コンフィグも普通にPHPファイル。

>→ 少なくとも独自エンジンやPHPを覚えさせるより、簡単で学習環境も整っている。
んなわけない。なんでPHPよりSmartyのほうが簡単で学習環境も整っているといえるんだよ。

>→ 同様の機能(キャッシュ、構文、プラグイン等)を実際に実装して比較してみたかい?
>  スレ頭のピュアコードより5倍遅いとかいうのを真に受けてるだけだろw
>ビジネスロジック層と比べれば軽い処理なので、システム的には対した差はでねーよw
おまえこそほんとに測定したのかよ。明らかにSmarty遅いじゃねーか。



246:nobodyさん
08/10/13 11:38:35
>・Smartyのテンプレートでエラーがあった場合、その行番号がずれている
>→ ずれてないよww エラー英文すら読めないレベルかwwww
>  そもそもPHPのテンプレートエラーはシステムに障害をきたすし、論外だ。

「<p>{$var}</p>」と1行だけ書いたテンプレートを用意し、$smarty->assign('var', new MyClass()); してから表示させるとこんなエラー。

PHP Catchable fatal error: Object of class MyClass could not be converted to string in /tmp/templates_c/%%C3^C35^C35E7879%%sample1.tpl.php on line 5

1行目なのに、コンパイルされたファイルの5行目でエラーとなっている。
これでどこがずれてないというの?おまえほんとにSmarty使ってるの?
> エラー英文すら読めないレベルかwwww
とかいうまえに、行番号ぐらい読めるようになろうぜwwww 数字の読み書きなら教えてやるぞwwww

>→PHP単体でなく、Smartyを使う理由?
>・テンプレートエンジンとして必要な機能を備えている
必要な機能はPHP自体がもっている。

>・拡張がし易い
>・デザイナのコードがシステムに混入しない
これはダウト

>・PHPテンプレートエンジンとしてはメジャーで扱える人が多い
PHPそれ自体はSmartyよりはるかにメジャー。PHPなら素人デザイナーでも基本は知っている。
わざわざSmartyを学習させる意味がわかんない。


247:nobodyさん
08/10/13 11:41:35
>>240
>僕らは楽して堅牢なシステムを作るためにSmartyを使ってるんだ。
>SymphonyとCodeIgniterの利点を教えて欲しいな(^o^
いまどきこんなこと言うのは、フレームワークを使ってないということか。
あるいはオレ様フレームワークか。
これでオレ様フレームワークつかってたら笑うなー。


248:nobodyさん
08/10/13 12:01:54
>>246
要するに、「うちのデザイナはPHP理解できるからSmartyいらないんだぜ」ってことな。
前提としてる環境が違うんだからいつまでも平行線なんだろうね。他にも摺りあわない理由はありそうだが。


249:nobodyさん
08/10/13 12:27:09
自社おかかえのデザイナがいるならどうでもいい話だろうが
外注に出す場合、まだsmartyの文法のほうが通じやすいと感じるがなー

既にsmartyを知ってるデザイナもちょこちょこいるし
知らない場合でもマニュアルの「II. テンプレートデザイナのための Smarty」だけ読んどいてで済む
さすがにPHPを覚えてくれとは言えない

250:196
08/10/13 14:37:10
やっとフレームワークの話が出てきたな。
名前もうまく書けてないレスが多いが、正しくはsymfonyと言う。

>>236
> Smartyを否定するだけの根拠を持ち出さないから素人扱い

Smartyを否定するつもりは無いよ。
「否定したら玄人」とか、どんな中二病だよw

まず前提として、Smartyの是非を議論する場合、
Smartyありきではなく、Smartyと実装Aと実装Bは対等に比較されるべきなんだよ。

>>237も同じで煽りに内容が無い。


251:196
08/10/13 14:56:46
さて本題だけど

> 196が良いって、グローバル変数かつ、ショートタグかつ、エスケープ無しがView的にOKって事かい?

その考え自体がモダンじゃないんだよな。

<?=$name?>を実行するファイルの先頭に書いたら、何が表示される?
Noticeが出るだけだよね(PHP4だと出ないかも)。当たり前のことだ。

「PHP単体」という言葉自体がおかしくて、(SmartyだってPHPだしな)
<?=$name?>を実行するためには、まず$nameに値を代入する必要があるんだよ。
ロジックから$nameに値を代入する過程が必ずあり、そこで、
スコープの決定と、エスケープなどのビュー用の加工処理が行われる。

ちなみに、スコープの決定条件は、196とSmartyで等価だよ。
パーサのメソッドの中でincludeしたら、スコープはそのメソッドの中になる。

212のコードの欠点は、ビュー用の加工処理が、
本来HTMLであるべきファイルの中で行われることだ。Smartyも同様。

まあ、俺はSmartyを否定したいのではなく、
別の選択肢を提示して、それに対する意見を聞きたかっただけなので、
とにかくSmartyを褒めてくれなきゃヤダヤダ、という話なら正直困る。


252:196
08/10/13 15:09:46
>>248-249
DreamWeaverでしかページを作れないへぼデザイナーと仕事をするとか、
外注には出すがソースレビューしたくないという場合は、
大人しくWeb製作として依頼して、コーディングは自分でやった方がいいとおもう。

結局Smartyだろうが何だろうがビューはビューなので、
MVCが理解出来ない人にビューを作らせようとしてもうまくいかんし、
テストとデバッグは結局やらなきゃいけないんだよ。

デザイナーから見たら、実際どう描画されるかわからない記号の羅列を
マニュアルと変数名の指示書どおりにHTMLに書き込んでみたりして、
「たぶんこれで出来たと思うんですがどうでしょうか」と言わないといけない時点で、
それはプログラマー仕事としての負荷を被っているわけだよ。
実質的に、分業にもなっていなければ、責任の切り分けにもなっていない。

Smartyの良くないところをあえて挙げるならば、
「Smartyを使えば、へぼデザイナーとへぼプログラマーが協力出来る」という幻想を
蔓延させた事かも知れんねw


253:nobodyさん
08/10/13 15:10:55
>>251
おまえさんはSmartyを否定してるんじゃなく、テンプレートエンジンを否定してるんだろ?
なら選択肢なんかじゃなくて具体的にどのように実装すべきかを提示してみてくれ

254:196
08/10/13 15:24:07
>>253
「PHPはテンプレートエンジンとしての要件を満たす」というのが196の主張だ。
>>229はそれを否定していたので、そこからして論外なのだ。

テンプレートエンジンとしての要件みたいなものを脳内で想像してるなら、
まずそれを考えなおして、表現してみてくれ。

「必ずキャッシュ機能が無いといけない」とか
「PHPとして実行できてはいけない」とか
そういう特殊な前提があるんなら、それを踏まえないとお前さんの役には立てんよ。

俺の要件に則って具体的な実装を述べて良いなら、
196こそが「テンプレートファイル」の答えなのだ。
$nameに何をどこでどうやって代入すればいいのかについては、>>251に書いた。

そうそう、ディスパッチャの存在が前提になるんだ。そこはSmartyと同じだな。


255:nobodyさん
08/10/13 15:33:22
>>254
いや、だからな
>ロジックから$nameに値を代入する過程が必ずあり、そこで、
>スコープの決定と、エスケープなどのビュー用の加工処理が行われる。
の具体例を提示してみてくれって話なんだが

256:nobodyさん
08/10/13 17:04:37
ぐだぐだ言い分けしてないで、
Smartyのここがだめ、俺ならこう書く!ってのをサンプル出せや。

PEARとかライブラリとか出してきてる時点で、ピュアPHPじゃねーし。
使う事を否定しないが、君なりの構築術があるわけだろ?

それを示せよ。何と比較してダメなのか、要所要所わかりやすく上げてくれ。

257:nobodyさん
08/10/13 17:05:33
単にSmartyに馴染めなかった、Smarty使ってる人うぜぇ!
ってだけならすれ違いだから、よそで最高のテンプレートエンジンを開発してくれよな!

258:nobodyさん
08/10/13 17:10:46
>>254
>「PHPはテンプレートエンジンとしての要件を満たす」というのが196の主張だ。
>>>229はそれを否定していたので、そこからして論外なのだ。

うむ、同意だな。PHPはそれ自体でテンプレートエンジンとして使える。

> テンプレートエンジンとしての要件みたいなものを脳内で想像してるなら、
> まずそれを考えなおして、表現してみてくれ。

テンプレートエンジンとしての要件は、ビューを分離できること、でいいと思う。

>「必ずキャッシュ機能が無いといけない」とか

キャッシュ機能はビュー層が単体で持つべき機能じゃないよな。
もつべきならコントローラ層だ。



259:nobodyさん
08/10/13 17:18:03
>>256
>ぐだぐだ言い分けしてないで、
>Smartyのここがだめ、俺ならこう書く!ってのをサンプル出せや。
前スレ読め。とっくに出てる。

>PEARとかライブラリとか出してきてる時点で、ピュアPHPじゃねーし。
はあ?ライブラリを使っちゃだめとか、頭どうかしてんじゃねーの。
Smartyだってライブラリだろ。なんでSmartyはよくて、他はだめなの?ばかなの?
それにPHPだけで書かれたライブラリはpure PHPだろ。言葉の意味間違ってるぞ素人さん。

>使う事を否定しないが、君なりの構築術があるわけだろ?
>
>それを示せよ。何と比較してダメなのか、要所要所わかりやすく上げてくれ。
だから前スレよめって。>>193以降全部読め。



260:nobodyさん
08/10/13 18:24:20
>まあ、俺はSmartyを否定したいのではなく、
別の選択肢を提示して、それに対する意見を聞きたかっただけなので、

>>193をそう解釈しろと言われても困る


261:nobodyさん
08/10/13 18:40:09
>>256

>何と比較してダメなのか
→ PHPと比較して。

>要所要所わかりやすく上げてくれ。
>>238からのコピペ。
・SmartyでやろうとしていることはPHPでできる
・Smartyは学習コストがかかる
・Smartyは遅い
・Smartyのテンプレートでエラーがあった場合、その行番号がずれている


で、Smarty擁護派が>>240で反論してるけど、Smarty反対派が>>245-246で再反論してて、今はSmarty擁護派の再々反論待ち。
特にエラー行番号についての見解を期待。

262:nobodyさん
08/10/13 21:39:53
何が見解だよww

>>エラーについて
君の出してるエラーは「Smartyエラー」じゃなくて「PHPのエラー」だねw
Smarty自体の処理ははあっておりコンパイルも通っている。
コンパイル後のPHP実行時に、ストリングに変換出来ないクラスをそのままassignして表示してるからPHPがエラー出してるんだろ。
Smarty以前の問題だ。素人レベルのミスだ。

行が違う!とか行ってるけど、
コンパイル後のクラスのライン5みりゃ1発で原因わかるよね。

PHP Catchable fatal error: Object of class MyClass could not be converted to string in /tmp/templates_c/%%C3^C35^C35E7879%%sample1.tpl.php on line 5


Smatyでのエラーは以下のように正しく表示される。

Fatal error: Smarty error: [in sample.tpl line 4]: syntax error: unrecognized tag 'test' (Smarty_Compiler.class.php, line 590) in /xxxx/Smarty.class.php on line 1092


263:nobodyさん
08/10/13 21:48:53
>PEARにいくらでもライブラリあるけど。プラグインは普通に関数でいいだろ。コンフィグも普通にPHPファイル。
ライブラリを組み合わせるのもSmarty使うのも同じだと思うが?PEARの優位性は何だろね。
関数はグローバル関数かい?w

>なんでPHPよりSmartyのほうが簡単で学習環境も整っているといえるんだよ。
逆もしかり。PHPの方が覚える事も少ないし、文法も完結だからだ。
何度も言うがショートタグが使えない現場は多い。

>おまえこそほんとに測定したのかよ。明らかにSmarty遅いじゃねーか。
したよ。他のエンジンと比べて大差ねーよ。
View処理が 5 : 10 だとしてもビジネス処理に 50 かかれば 55 : 60 程度の差って事だよ。

>エラーコード
上に書いた。PHPの変数の使い方から出直してこい。

>必要な機能はPHP自体がもっている。
PEARとか別のライブラリや、スコープ確保の為にクラス化、関数化は必要だよね?
そうされた一式がSmartyって事なんだが。

>拡張がし易い
プラグイン、フィルタ、リソース等、かなり楽に拡張できるが?

>PHPそれ自体はSmartyよりはるかにメジャー
何度も言わせるな。「PHP単体」じゃ無理だろ。同じ事実現する為のライブラリの学習コストを考えろ。

>フレームワーク
cake、Zend、CodeIgniter使ってる。全部ViewはSmarty拡張クラス組込済。

264:nobodyさん
08/10/13 22:13:18
>別の選択肢を提示して、それに対する意見を聞きたかっただけなので、

解ったから、具体的に選択肢を提示してくれよ。

ショートタグで値を表示するだけじゃ甲乙つけられないだろ?
ループ、エスケープ、インクルード、条件分岐が入ったViewテンプレートサンプルを上げてくれ。
それを見て「これならSmarty使う必要は無いな」と思わせてくれよ。

俺が出すサンプルは以下だ、
「ヘッダ、フッタを合成して配列の中身をテーブルに出力するだけの簡単な処理」

265:nobodyさん
08/10/13 22:16:06
===================================================
 PHP + Smartyで記述
===================================================
{include file="header.tpl" title="ページタイトル"}
<table>
<tr>
{foreach from=$rows item=row}
{strip}
<td>{$row.time|date_format:"%T "|default:"00:00:00"}</td>
<td>{$row.name|escape}</td>
<td>{$row.value|escape|default:"DEFAULT"}</td>
{/strip}
{/foreach}
</tr>
</table>
{include file="footer.tpl"}


266:nobodyさん
08/10/13 22:16:56
===================================================
 PHP単体で記述
===================================================
<?php
$title = "ページタイトル";
include_once "header.php";
?>
<table>
<tr>

<?php foreach((array) $rows as $row) { ?>
<?php ob_start();?>
<td><?php echo $row["time"] ? strftime("%T", $row["time"]) : "00:00:00"; ?></td>
<td><?php echo htmlspecialchars($row["name"]);?></td>
<td><?php echo ($row["value"]) ? htmlspecialchars($row["value"]) : "DEFAULT" ?></td>
<?php echo preg_replace("/[\r\n]/", ob_get_contents()); ?>
<?php ob_end_clean(); ?>
<?php } ?>
<tr>
</table>
<?php include_once "footer.php";?>


267:nobodyさん
08/10/13 22:17:35
PHP側はこれでも処理が全然足りない。
インクルードファイルの管理や、ローカルスコープ化処理、エラー処理、etc。
結局細かい処理を考えるとSmartyと同程度までの実装は欲しくなってくる。(文法はおいておいて)
そこをライブラリや関数で補うって事なんだろうけど、
実際にそうした場合のテンプレートコードを上げてみてくれ。


268:nobodyさん
08/10/14 01:17:27
>>262
>君の出してるエラーは「Smartyエラー」じゃなくて「PHPのエラー」だねw
>Smarty自体の処理ははあっておりコンパイルも通っている。

あほかお前、なんでSmartyのエラーかPHPのエラーかをここで区別する必要があるんだ?
エラーといわれた場所の行番号が違っていることが問題なんだろうが。
Smartyのエラーなんて、ただの構文解析でのエラーしかでねーじゃんか。
実行時のエラーには無力なうえ、変な行番号ででるんじゃ、使い勝手悪すぎだろ。
PHPなら実行時のエラーも行番号がずれることはない。こんなのあたりまえ。
実行時エラーを変な行番号でしか報告できないSmartyを必死に擁護するほうがどうかしてる。
「Smartyエラー」ってなんだよ、構文解析でのエラーじゃないからSmartyのせいじゃありませんって、アホか。
エラーの種類に関係なく、行番号がずれるのが問題なのに、
構文レベルエラーと実行時エラーを区別する必要がどこにある。


269:nobodyさん
08/10/14 01:52:38
>>268
デザイナとプログラマの分業がなされているとき
構文エラーはデザイナ責任、実行時エラーはプログラマ責任。
PHPエラーがでたらプログラマが対処すりゃいい。

そもそも、>246のエラーは文字列に変換できないクラスをassignしないもしくは、
assignしたものが直接扱えない変数であることをデザイナに伝えていれば起きない。

270:nobodyさん
08/10/14 02:36:44
>>268
アホはお前だろw
実行時エラー制御したいなら、Smartyに限らずassign時点で型判別しろよ無能w
それこそSmartyとかPHP以前の話だよ。


>エラーの種類に関係なく、行番号がずれるのが問題なのに、
ずれてねーよw コンパイル後のソースでの行数で、ご丁寧にファイル名まで出てるじゃん。
スクリプト言語しか触った事無い素人には、実行時エラーのデバッグは難しいのかもしれんが、
普通のPGなら上のエラーコード読むだけで、エラー内容もエラー位置も特定出来るわ…

むしろ構文エラーじゃなくて、実行時エラーだって理解出来て問題識別しやすいわw


無能を晒してないで、
はやく>>265-266を君の考えた素敵で使い勝手の良いテンプレートに書き換えてくれよ。
はやく>>265-266を君の考えた素敵で使い勝手の良いテンプレートに書き換えてくれよ。
はやく>>265-266を君の考えた素敵で使い勝手の良いテンプレートに書き換えてくれよ。



271:nobodyさん
08/10/14 02:40:48
こういう無能がdisplay_errorsをonにしたまま本番公開しちゃって恥ずかし思いするんだろうねぇ('_`

272:nobodyさん
08/10/14 03:44:58
>>268じゃなくて初心者だけどつくってみたー
よろしくお願いしまーす

<? // きょうつう(init.php)
define('DS', DIRECTORY_SEPARATOR);
define('TEMPLATE_DIR', 'tpl');

function include_template($name, $vars) {
// てきとうにかんすうをていぎします
function h($str){ return htmlspecialchars($str); }
function strip($str){ return preg_replace('/[\n\r]/', '', $str); }

extract($vars);
include TEMPLATE_DIR . DS . $name;
}
?>

273:nobodyさん
08/10/14 03:46:43
<? // こんとろーら
require_once 'init.php';
$rows = array(
array('time'=>time(), 'name'=>'foo', 'value'=>1),
array('name'=>'bar')
);
include_template('tpl.php', compact('rows'));
?>

<? // てんぷれーと(tpl.php) ?>
<? $title = 'ページタイトル'; ?>
<? include 'header.php' ?>
<table>
<? foreach((array) $rows as $row): ?>
<? ob_start('strip') ?>
<tr>
<td><?=h ($row['time'] ? strftime('%T', $row['time']) : '00:00:00') ?></td>
<td><?=h ($row['name']) ?></td>
<td><?=h ($row['value'] ? $row['value'] : 'DEFAULT') ?></td>
<tr>
<? ob_get_flush() ?>
<? endforeach ?>
</table>
<? include 'footer.php' ?>

でもsmartyのメソッドチェインてきなやつはよいとおもいます


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4978日前に更新/245 KB
担当:undef