【PHP】Smarty【Template】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
03/03/10 00:57ID:NhgrjNBT本家(英語)
http://smarty.php.net/
日本語マニュアルとか
http://sunset.freespace.jp/smarty/
0896nobodyさん
2005/06/02(木) 16:41:46ID:???とはいえプレゼンテーションロジックも入って来るし
phpも書くことは出来る…
メリット薄っ
0897nobodyさん
2005/06/02(木) 16:46:49ID:???Smartyの知識はないようですね。キャッシュとコンパイルの
区別も付いていない人も居るみたいですし。
0898nobodyさん
2005/06/02(木) 16:55:48ID:???0899nobodyさん
2005/06/02(木) 17:03:48ID:???あとサニタイズもやりやすい気はするなぁ
ただメリット群がモッサリした遅さと
トレードオフするかというと疑問符…やはり遅さがネックだな
0900nobodyさん
2005/06/02(木) 17:10:19ID:???Smartyにメリットが無いなんていってるやつは営業の事を全く考えていない。
何の特色も無いプログラムをアピールするのは至難だと言うことに気づけ!
「世界的に普及していて実績もあるMVCフレームワークのひとつであるSmartyは
LAMPとの相性も最高で、かつて無い抜群のパフォーマンスを発揮します」
てな調子で煽っておけばバカな客はよくわかんねーけどすごそうだと思い込むし
少しバカな客は書店などで冒頭の謳い文句だけ読んで最新技術なのか〜
なんて思い込むものさ。その結果ボったくっても文句言われにくくなるので
仕事も安定するし、収益も上がる。
ほんのわずかな実行速度や手間をケチったおかげで仕事が減っては本末転倒。
どうだ?使いたくなってきただろw
0902nobodyさん
2005/06/02(木) 17:16:49ID:???0903nobodyさん
2005/06/02(木) 17:31:57ID:???0904nobodyさん
2005/06/02(木) 17:37:35ID:???0905nobodyさん
2005/06/02(木) 17:40:11ID:???Perlとかと比べるとメリット薄いといえば薄いが
必要ないって事も無いと思うけどな。
0906nobodyさん
2005/06/02(木) 18:08:29ID:???「若干過大評価されている」気はするな、世間的に。スマーチィ。
0907nobodyさん
2005/06/02(木) 19:31:36ID:???まだ、本格的に使ってるわけじゃないんで、アドヴァンテージがSmartyにあるなら、
乗り換えてみようかなぁ、とか思うんで。
0908nobodyさん
2005/06/02(木) 19:38:15ID:???0909nobodyさん
2005/06/02(木) 21:23:12ID:???mojaviデフォルトのテンプレートシステムにちょっと機能加えるくらいの方がいい
0910nobodyさん
2005/06/02(木) 21:47:27ID:???0911nobodyさん
2005/06/03(金) 00:57:34ID:???0913nobodyさん
2005/06/03(金) 01:30:10ID:???0914nobodyさん
2005/06/03(金) 03:25:09ID:???0915nobodyさん
2005/06/03(金) 15:41:14ID:???0916nobodyさん
2005/06/03(金) 20:29:17ID:???作るなら勝手に作ればって感じだけど
お前が考え付くようなウンコな仕様はすでに誰かが作ってるよ。
無駄ってこと。
0917nobodyさん
2005/06/03(金) 21:07:54ID:???0919nobodyさん
2005/06/03(金) 23:45:39ID:???必要最小限の機能があって速ければね
viewなんてそんなに機能いらないだろ
0920nobodyさん
2005/06/04(土) 01:23:57ID:???全然逆じゃない。
>お前が考え付くようなウンコな仕様はすでに誰かが作ってるよ
なんて言ってるようじゃ進歩はしないね。
0921nobodyさん
2005/06/04(土) 01:27:25ID:???なんで駄目なんだとか聞くうんこなら、ってことじゃねーの?
0923nobodyさん
2005/06/04(土) 01:53:02ID:???0924nobodyさん
2005/06/04(土) 02:01:06ID:???0925nobodyさん
2005/06/04(土) 02:07:05ID:???0926nobodyさん
2005/06/04(土) 03:08:21ID:???とかいう有難いお言葉をラクダ本で読んだ記憶がある
>>924
会話もフレームワーク化すると再利用しやすくなってウマー
0927nobodyさん
2005/06/04(土) 05:13:25ID:???ラジコンのタイヤ程度のものどんどん再発明すればいいじゃん
0928nobodyさん
2005/06/04(土) 12:26:05ID:???0930nobodyさん
2005/06/04(土) 13:30:42ID:???車輪だけど、車輪は作ることによって得ることも大きい。
使う方にとっちゃ、ちゃんとした車輪を選択するけどな。
0931nobodyさん
2005/06/04(土) 15:31:37ID:???0932nobodyさん
2005/06/04(土) 17:54:24ID:???ループはforeachがあるし、条件分岐はifがあるし
存在意義がよく分からん。
0933nobodyさん
2005/06/04(土) 21:03:07ID:???0936nobodyさん
2005/06/04(土) 23:17:10ID:???forの替わり
0937nobodyさん
2005/06/04(土) 23:51:52ID:???一通りマニュアル読んだけど、今のとこいまいち使いどころがない。
そのうち出てくるかも。
0938nobodyさん
2005/06/05(日) 03:50:52ID:???foreachの前にsectionを知ったからそのまま使ってるだけだしなぁ。
まぁ別にあって困るもんじゃないし、sectionでもforeachでも
好きなほうを使えばいいんじゃない?
0939nobodyさん
2005/06/05(日) 13:00:58ID:???[テンプレ側]
{loop name=hoge}
$name
$title
$comment
{/loop}
[PHP側]
foreach ($foo) {
$smarty->append("name" => "aaa", "title" => "bbb", "comment" => "ccc");
}
0940nobodyさん
2005/06/05(日) 13:03:09ID:???こんな感じ。
[PHP側]
foreach ($foo) {
$smarty->append(
"hoge" => array(
"name" => "aaa",
"title" => "bbb",
"comment" => "ccc"
)
);
}
0941nobodyさん
2005/06/05(日) 13:06:31ID:???こんな感じ。
[テンプレ側]
{loop name=hoge}
名前:{$name}
タイトル:{$title}
コメント:{$comment}
{/loop}
0946nobodyさん
2005/06/05(日) 23:53:09ID:???おいおい、しっかりしろよ・・・
人のことをガキ呼ばわりする前にもう少し頭使おうぜ
> foreach ($foo) {
> $smarty->append(
> "hoge" => array(
> "name" => "aaa",
> "title" => "bbb",
> "comment" => "ccc"
> )
> );
> }
0947nobodyさん
2005/06/06(月) 22:42:10ID:???いちいち細かい奴だな。
別に動くプログラムを組んでるわけじゃないんだから
雰囲気だけ分かりゃいいだろうが。
雑魚はこれだから。
0948nobodyさん
2005/06/06(月) 23:00:55ID:???0949nobodyさん
2005/06/06(月) 23:54:30ID:???むちゃくちゃな構文で質問して、
まともな答えもらおうっていう方が甘ったれてんだよ。
百年ほど人生やり直してこい。
0950nobodyさん
2005/06/07(火) 01:28:14ID:???おいおい。勘違いしてもらっちゃ困るんだが。
お前らみたいなアホに質問なんかしねーってw
日本語すら理解できないような池沼からまともな答えなんて
期待してねーっつの。ちゃんとスレ読み直してみろよ。
日本語も分からないでプログラム言語か?
順序が違うんじゃねーのwww
0951nobodyさん
2005/06/07(火) 01:58:41ID:???脳味噌まで自己中とは恐れ入ったな(プ
0952nobodyさん
2005/06/07(火) 10:09:04ID:???0953nobodyさん
2005/06/07(火) 10:14:08ID:???0954nobodyさん
2005/06/07(火) 12:08:14ID:KvahcTPl外部cssいじらせた方が良いと思うがなぁ。もちろんデザイン的に外部cssのみではどうにもならん場合も
あるだろうが、どうにかなる場合の方が多いだろうし。
論理構造を始めに決めときゃ、デザインもらってロジック埋め込むなんてせんでも同時に製作始められるし、
loopやifがもっとスッキリ書けてオーサリングツールと完全に連携できるテンプレートエンジンがありゃいいけど
テーブルの行の色やら列数をデザイン側で任意に変更させるのにデザイナに↓こんなんの説明とかしても
あんまり意味あると思えんしなぁ。
<table>
<!--{section name=row loop=$LIST step=3}-->
<tr>
<!--{section name=col start=$smarty.section.row.index loop=$smarty.section.row.index+$smarty.section.row.step}-->
<!--{if $LIST[col] != null}-->
<td><!--{$LIST[col]}--></td>
<!--{else}-->
<td> </td>
<!--{/if}-->
<!--{/section}-->
</tr>
<!--{/section}-->
</table>
0955nobodyさん
2005/06/07(火) 12:40:16ID:???0956nobodyさん
2005/06/07(火) 18:55:39ID:???0957nobodyさん
2005/06/07(火) 21:49:38ID:???0958nobodyさん
2005/06/08(水) 00:40:41ID:???ブラウザでプレビュー際にコードが表示されて邪魔にならないのかな
0959nobodyさん
2005/06/08(水) 00:54:41ID:???PHP直接埋め込むよりはマシかと。
<A HREF="<?php echo $aa ?>">aa</a>
みたいのだとぐちゃぐちゃになって目も当てられない。
でもSmartyって、制御構造とか入れると結局テンプレートも煩雑になるし、
コストも高いし、自由度は低いしで、俺は自前で{$form['aa']['bb']}みたいのを埋め込んだ
テンプレートを作ってevalで埋め込みしてるよ。
$output = file('テンプレートファイル名');
array_unshift($output, "print <<<EOTNJGTU\n");
array_push ($output, "EOTNJGTU;\n");
eval(join("", $output));
こんな感じで。実際にはクラス化して結果をリファレンスでも取れるようにしたり、使いやすくしてる。
テンプレート中での制御構造は潔く諦めて、テーブルなんかはViewクラスで生成して
変数にぶちこんだものを上記の方法でテンプレートに埋め込んでる。
小規模開発ならこれで充分だと思う。
0960nobodyさん
2005/06/08(水) 03:06:51ID:???0961nobodyさん
2005/06/08(水) 05:13:08ID:???0962nobodyさん
2005/06/08(水) 09:25:23ID:???つhttp://www.contactlensesprice.com/smarty/
0963nobodyさん
2005/06/08(水) 22:34:16ID:???逆にCSSなんかは今やYahooですら使ってる必須技術。
開発側もCSS自由自在にデザインできるテンプレートを作ってやれる程度には
ならんとな。
0965nobodyさん
2005/06/09(木) 00:09:22ID:???963じゃないけど、CSS != HTML
CSSは結構奥深いよ
DOMと組み合わせたりして、面白いことが色々出来る
ブラウザの対応がバラバラなのが痛いがなー
0967nobodyさん
2005/06/09(木) 01:33:29ID:???0970nobodyさん
2005/06/10(金) 21:16:50ID:???0971nobodyさん
2005/06/10(金) 21:42:17ID:???0972nobodyさん
2005/06/10(金) 21:59:54ID:???0973nobodyさん
2005/06/10(金) 22:02:05ID:???そんなどうでもいいことで簡単に切れるか
0978nobodyさん
2005/06/11(土) 00:30:57ID:???|(・)。(・)| ( )< バッドノウハウなんだね!
|ヾ三ヲ└'ノ
.| l´
つ ま り
0979nobodyさん
2005/06/11(土) 00:36:32ID:???プログラマはSQL書いて結果を配列で渡すだけみてーな仕事増えそうだけどなー。
0984$default_modifiers、$debuggingの設定でparse error
2005/06/11(土) 11:33:33ID:uAXJbuvYdebug.tpl.phpがParse errorになるのですが、
最後に述べる解決方法でより良いものを知っている人が教えてください。
問題の発端は{$hoge}でParse errorになったのですが、そちらは解決できました。
(PHP 4.3.9とSmarty 2.6.9を使用
・hello.php
<?php
require_once("libs/Smarty.class.php");
$o_smarty=new Smarty();
$o_smarty->default_modifiers=array("upper");
$o_smarty->assign("hoge","abc");
$o_smarty->debugging=true;
$o_smarty->display("hello.tpl");
?>
・hello.tpl
<html><head><title></title></head><body>
{$hoge}</body></html>
・出力
ABC
Parse error: parse error, expecting `T_VARIABLE' or `'$'' in
(中略)templates_c(中略)debug.tpl.php on line 10
・debug.tpl.php 10行目
<?php if (isset ( ((is_array($_tmp=$this->_tpl_vars['_smarty_debug_output'])) ?
$this->_run_mod_handler('upper', true, $_tmp) : smarty_modifier_upper($_tmp)) ) && ((is_array($_tmp=$this->_tpl_vars['_smarty_debug_output'])) ? $this->_run_mod_handler('upper', true, $_tmp) : smarty_modifier_upper($_tmp)) == 'html'): ?>
・解決方法
core.display_debug_console.phpを修正
http://www.phpinsider.com/smarty-forum/viewtopic.php?t=5179&highlight=expecting+tvariable
件の解決策は以下を考えました。
・if empty($hoge|smarty:nodefaults)と書いてParse errorを避ける。
・またはデバッグの時は、default_modifiersをコメントにする。
根本的な解決策はSmarty側のどこかのソースを修正しなければならないのでしょうか?
(できればhello.tpl、phpは修正したくないです。)
レス数が950を超えています。1000を超えると書き込みができなくなります。