トップページ⇒php
981コメント365KB

【PHP】 Smarty 【テンプレートエンジン】 第2章

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/03/29(月) 14:41:04ID:???
Smarty は PHP のためのテンプレートエンジンです。
具体的に言うと、php のプレゼンテーションからアプリケーションのロジックとコンテンツを分離して管理する事を容易にします。
これは、プログラマーとテンプレートデザイナーの役割が異なり、
これらの役割を違う人間が受け持っている場合に最適だと言えます。
0666nobodyさん2010/10/29(金) 01:04:04ID:???
修正してからUPすれw
0667nobodyさん2010/10/30(土) 16:24:32ID:???
>>665
何がしたいのかよくわからんが、
独自プラグインを作るなりで対応出来そうな臭いがする。
0668nobodyさん2010/11/03(水) 12:26:10ID:2+LMcIpA
DBからのselectの結果、値が入ったときに以下の形になる配列があります
$ary=array(
 array('name'=>"A", 'age'=>1),
 array('name'=>"B", 'age'=>2),
 array('name'=>"C", 'age'=>3)
)
もしDBにデータがない時は、要素を全部NULLで初期化して以下のようにしています
$ary = array(NULL, NULL, NULL);

この条件で
{foreach from=$ary item="item"}
名前:{$item.name|default:"名無し"}さん
年齢:{$item.age|default:0}歳
{/foreach}
としても「名無しさん 0歳」と出力されず困っています。

$ary = array(array('name'=>NULL, 'age'=>NULL), …);の形で初期化&assignするしかないんでしょうか?
カラの配列をitemに指定されたとしても($ary自体がNULLだとしても)上記のように
default値をセットして出力出来たら最高なんですが。
ご意見お願いします。
0669nobodyさん2010/11/03(水) 12:34:19ID:???
default修飾子は以下の実装になってるから、修正するか新しい修飾子作っちゃえばいいんじゃないかな。

function smarty_modifier_default($string, $default = '')
{
if (!isset($string) || $string === '')
return $default;
else
return $string;
}
0670nobodyさん2010/11/03(水) 12:45:19ID:???
・{%if $item}{%/if%}で囲う
・assignする段階で不要な要素を$aryから取り除く
・assignする段階でNULLを空文字列に置換する
とかでも。
0671nobodyさん2010/11/03(水) 12:51:43ID:2+LMcIpA
>>669

ホントありがとうございます。なるほど、default修飾子の実装内容を確認すれば良かったのかー

もう一つすみません。sectionでmaxっていう機能がありますけど、
アレって配列の要素が10個あったとして最大で5回しかループさせたくない時に使うんですよね?
10個の配列に対して15回ループさせて該当要素のない5個分はデフォルト値を割り当てると
したかったんですがムリですか? 実際に試してみたら10回しか出力しませんでしたが。。

というか、テンプレートの記述内容を単純にループ処理させるsmartyタグってないんでしょうか?
0672nobodyさん2010/11/03(水) 12:54:04ID:???
ループする回数はloop属性じゃないかね
0673nobodyさん2010/11/03(水) 12:54:12ID:2+LMcIpA
>>670
やっぱりifを使うのが単純ですよね〜
なんか美しくないなんて思ってしまう…

どうもありがとうございました
0674nobodyさん2010/11/03(水) 12:57:22ID:???
>>671
sectionのリファレンス、「例 7-31. {section} で配列を割り当てない例」にかいてある。
http://www.smarty.net/manual/ja/language.function.section.php

15回ループする例
{section name=foo start=1 loop=15}
{$smarty.section.foo.index}
{/section}
0675nobodyさん2010/11/03(水) 13:05:28ID:2+LMcIpA
>>672
え! loopってassignした配列を割り当てるんですよね?
…と、調べたらわかりました

{section name="hoge" loop=10}
{assign var="idx" value=$smarty.section.hoge.index}
{if $dbResult.$idx}
<input type="text" name="name" value="{$dbResult.$idx.name}" />さん
<input type="text" name="age" value="{$dbResult.$idx.age}" />歳
{else}
<input type="text" name="name" />さん
<input type="text" name="age" />歳
{/if}
{/section}
ってやり方でOKだ

>>671
ちょうどそれの使い道理解出来たとこでした。ありがとうございます!
(上にあるような10件くらいの一括登録/編集フォームをつくりたかったんです)
foreachとsectionの違いも何となく理解出来ました。ありがとうございました!
0676nobodyさん2010/11/14(日) 06:59:06ID:JLmGfYbT
Smarry3リリースされたんだな
0677nobodyさん2010/11/14(日) 07:01:14ID:JLmGfYbT
>>676
打ち間違い
×Smarry3
○Smarty3
0678nobodyさん2010/11/19(金) 00:03:24ID:???
かなり前にね。
でもうちはまだ2.6
新規開発でもしない限り乗り換えるほどのメリットは感じないしな
0679nobodyさん2010/11/19(金) 01:33:13ID:???
無理に乗り換える必要性は無いが、
math構文とかforeach構文とか地味に使いやすそうでウズウズするのが制作者ってもんよ。

新規案件あったら乗り換えたいが、安定性だけが怖い。
0680nobodyさん2010/11/24(水) 17:58:08ID:???
Smarty3でclearCacheしたあとにdisplayさせると
assignさせてもうまくいかないな…
0681nobodyさん2010/12/01(水) 06:23:20ID:???
Smarty3では、Javascriptを、{literal}で囲まなくても
良くなったの?

(当方英語が苦手なので英文読んでも合ってるか自信がない)
0682nobodyさん2010/12/01(水) 06:41:32ID:???
PHPフレームワークの学習をしようとしています。
今までのスキルを活かすため、ビューにはSmartyを使いたいのですが、
Smartyを1番無理なく使えるフレームワークは何でしょうか?

今の所、CakePHPかZendFrameworkを考えています。
0683nobodyさん2010/12/01(水) 09:07:19ID:???
本質的にはMVCは独立しているべきでありまともなFWであれば何を使っても無理なく導入できるはずでありうんたらかんたら
0684nobodyさん2010/12/01(水) 12:02:05ID:???
コントローラやモデルはルールが多いCakeを主体にして統一感を持たせて
足りない機能はZendをユーティリティとして使い
ビューは好きなの(今回ならSmarty)選ぶ
0685nobodyさん2010/12/01(水) 16:51:58ID:???
smartyの利点を余すことなく使えるかどうか
0686nobodyさん2010/12/01(水) 22:22:59ID:???
>>682
Zendに一票。
覚える方言が少ないので、比較的学びやすいと思う。

その後で他のフレームワークを触ってみればいい。
0687nobodyさん2010/12/05(日) 06:45:05ID:???
Smarty3.0.5で、テンプレ内に、
{$foo = array("k"=>"v")}
と書くと、エラーになってしまいます。
これ(エラーになること)は仕様でしょうか?

{$foo["k"] = "v"}
ならOKなので、上述の書き方が許されても良い気がするのですが・・・
06886822010/12/05(日) 06:54:26ID:???
>>683, 684, 685, 686

まずは686さんのアドバイスに従い、Zendでやっていこうと思います。
皆様、アドバイスありがとうございました。
0689nobodyさん2010/12/11(土) 09:49:38ID:???
>>687
配列の要素への代入が=で可能になったというだけであって
{}内にPHPの文法をそのまま使えるようになったわけじゃないからな。
0690nobodyさん2010/12/29(水) 05:15:05ID:???
Smarty2.xの自作テンプレートがたくさんあるのだが、
Smarty3用に書き換えようか、悩む・・・
0691nobodyさん2011/01/03(月) 12:47:50ID:???
$a['id'] = xx;
$a['name'] = yy;
である変数$aをテンプレートに渡すと、
  {foreach $a as $key => $value}
と書けばキーと値を順次取り出せますが、
 $a->id = xx;
 $a->name = yy;
である変数$aをテンプレートに渡す場合、プロパティ(id, name)と値 を
順次取り出す方法はあるのでしょうか?
0692nobodyさん2011/01/03(月) 13:06:26ID:???
{foreach $a as $key => $value}
06936912011/01/03(月) 14:31:48ID:???
>>692
出来ました!
ありがとうございますっ!
0694nobodyさん2011/01/08(土) 12:12:50ID:???
echo date("Y")

をSmartyで確認はどうすればいいですか?
0695nobodyさん2011/01/08(土) 12:21:48ID:???
{date("Y")}
0696nobodyさん2011/01/08(土) 21:10:40ID:???
このスレッドにはSmarty布教者がいるようですね。
俺みたいな駆け出し若輩ド素人には、大変心強いデス。
ありがとうございます。
0697nobodyさん2011/01/08(土) 21:28:44ID:???
マニュアルくらい読めよ
0698687、6962011/01/08(土) 21:47:25ID:???
馬鹿発見。
あ、697のことね。
0699nobodyさん2011/01/08(土) 21:48:33ID:???
そりゃお前だろw
0700nobodyさん2011/01/09(日) 11:54:50ID:???
smartyのスレなんだからスマートにいこうぜ
0701nobodyさん2011/01/16(日) 17:09:27ID:???
アニキぼすけて
{$test[$k].sample1} {$test[$k].sample2} {$test[$k].sample3}・・・と出力したいのですがどうしてもうまくいきません

{assign var="x" value=1}
{foreach from=$test key=k item=val }
{$test[$k].sample{$x}}
{assign var="x" value=$x+1}
{/foreach}
0702nobodyさん2011/01/16(日) 17:54:04ID:???
>>701
Foreachの中の最初に assign で sample2 とかいう値を別の変数にいれて
それをキーに使えや。
0703nobodyさん2011/01/16(日) 18:38:33ID:???
{$test[$k][`sample$x`] とかで出来なかったっけ。
0704nobodyさん2011/01/16(日) 19:04:15ID:???
>>702
神様ありがとう
配列用の配列というのが考えつかんでした
>>703
やってみたけどだめだったざます
$test[$k][`sample{$x}`]とか$test[$k][`sample.$x`]とか
0705nobodyさん2011/01/16(日) 19:35:32ID:???
"sample$x"
0706nobodyさん2011/01/16(日) 22:04:42ID:???
>>705
残念な結果に終わりましたが助言ありがたきしわわせです。
Smarty error: [in test.tpl line 31]: syntax error: unrecognized tag: $test[$k]."sumple$x" (Smarty_Compiler.class.php, line 436) 以下省略

$test[$k].["sumple$x"]でもエラーでした。
配列の配列を作るのが無難ぽいですね
0707nobodyさん2011/01/16(日) 22:05:47ID:???
連レスご容赦くださいまし。
×Smarty error: [in test.tpl line 31]: syntax error: unrecognized tag: $test[$k]."sumple$x" (Smarty_Compiler.class.php, line 436) 以下省略
○Smarty error: [in test.tpl line 31]: syntax error: unrecognized tag: $test[$k]."sample$x" (Smarty_Compiler.class.php, line 436) 以下省略
0708nobodyさん2011/01/16(日) 22:51:47ID:???
$test[$k]["sample$x"]
0709nobodyさん2011/01/17(月) 00:35:49ID:???
{$test[$k]["sample`$x`"]} でどうだろうか、$xをバッククォートでくくる。


http://www.smarty.net/docsv2/ja/language.syntax.quotes.tpl
0710nobodyさん2011/01/17(月) 12:13:12ID:???
>>709
おこらりましたが助言ありがたうございます
Smarty error: [in test.tpl line 27]: syntax error: unrecognized tag: $test[$k]["sample'$x'"] (Smarty_Compiler.class.php, line 436)以下省略

というか[]を使うと変数を使う前からだめっぽいです
$tast[$k].sample1 → もちろん問題なく表示される
$tast[$k][sample1] → 何も表示されない。@debugでemptyが帰ってくる
$tast[$k]['sample1'] → エラー
$tast[$k]["sample1"] → エラー
0711nobodyさん2011/01/17(月) 12:18:11ID:???
アァンバッククォートでした大変失礼いたし
しかしバッククォートでもエラーでした

Fatal error: Smarty error: [in test.tpl line 27]: syntax error: unrecognized tag: $test[$k]["sample`$x`"] (Smarty_Compiler.class.php, line 436)
0712705=7082011/01/17(月) 22:45:31ID:???
>>708でできなかったの?
0713nobodyさん2011/01/19(水) 03:03:27ID:???
Smarty3にしてsmarty.class.phpをインクルードしたら
オートローディングできなくなった。
解決できなかったのでSmarty2にもどしたよ><

0714nobodyさん2011/01/23(日) 18:30:23ID:???
Smarty2から3にするメリットってあるのかな・・・?
よくわからん。
0715nobodyさん2011/01/23(日) 18:56:00ID:???
ありまくり
0716nobodyさん2011/01/24(月) 07:59:45ID:???
テンプレートエンジンにそこまでの機能いるのかって気もするので2系と3系で分岐したらいいかも・・・
0717nobodyさん2011/01/24(月) 18:47:39ID:???
>>715
ありまくり?
Javascript内で {literal} が不要になったことくらいだと思うけどなぁ・・・
0718nobodyさん2011/01/24(月) 18:57:01ID:???
あ、あと、foreach の構文がPHPと同じになったことだな。

  {foreach $arrayvar as $itemvar}
  {foreach $arrayvar as $keyvar=>$itemvar}

でいけるのはちょっと嬉しい。
0719nobodyさん2011/01/24(月) 21:56:34ID:???
あ、あとテンプレートの継承ができるのが便利
0720nobodyさん2011/01/25(火) 02:16:52ID:???
結構、便利な事あるじゃんw
0721nobodyさん2011/01/25(火) 06:36:16ID:???
記述がスマートになったのはでかい
2.xはちょっとした計算が必要なだけなのにassignが必要だったりするからな・・・
0722nobodyさん2011/01/25(火) 07:29:50ID:???
http://hibari.2ch.net/test/read.cgi/php/1168761226/l50
上級者ェ・・・
0723nobodyさん2011/01/25(火) 09:40:47ID:???
>>719
テンプレートの継承について詳しく!
0724nobodyさん2011/01/25(火) 12:30:27ID:???
>>722
誤爆に今気がついた。しにたい。
0725nobodyさん2011/01/25(火) 19:42:15ID:???
フレームワークにSmarty組み込む例をよく見るんだけど、重くならないか?
素のPHP+Smartyなら分かるんだが
0726nobodyさん2011/01/25(火) 20:38:31ID:???
>>725
オレオレフレームワーク向けだろう。
0727nobodyさん2011/01/25(火) 20:48:09ID:???
別にZFにSmarty組み込むのもありだし
0728nobodyさん2011/01/25(火) 21:09:42ID:???
マルチスレッドなApacheで、コンパイル済みのテンプレ処理するだけなら
そんなに遅くならないんじゃねぇの?

それでも遅さが気になるなら、DBのチューニングが先だと思うぞ。
0729nobodyさん2011/01/25(火) 23:23:11ID:???
>>725
散々言われているが今のハードウェア環境なら微々たる差しか出ない。
キャッシュとか駆使するのであればむしろ軽くなる事だってある。
0730nobodyさん2011/01/26(水) 09:27:43ID:???
>>726
俺もオレオレに組み込んでるなw

>>728-729
散々言われてない気がするけど、xdebugとかで内部処理見たか?
FM×Smartyの処理が重なって凄い処理時間になってるぞ。
キャッシュ使っても動的なサイトだとあまり意味無いと思うし。

CakePHPに組み込んだけど、Cakeの書き方になるから
Smarty本来の使い勝手も失われるし。
(Cakeは配列中心だから、そのままSmartyで使うのは難がある
0731nobodyさん2011/01/26(水) 09:30:18ID:???
そう言うわけで、「重い」ってのは動作だけじゃなくて、
制作コストが通常よりかかる=重い(遅い)というのが言いたかった。

せっかくフレームワーク使ってるのに、
余計な処理を加えて開発が遅くなるなら意味無いなってね。
0732nobodyさん2011/01/26(水) 20:22:14ID:???
>>730
FMって何か分からんけど、動的なサイトだと意味ないって具体的にどんな場合?
0733nobodyさん2011/01/26(水) 20:23:02ID:???
>>731
製作コストが通常よりかかる?FWは開発効率を上げるために使うものだと思うが。
0734nobodyさん2011/01/26(水) 20:58:28ID:???
>>730
CPUリソースなんて0.001%の負荷が0.005%になった程度じゃね?
一般的にはDB、ネットワークリ、ファイルI/Oが主なネックになるから、
Smarty導入した程度で悲鳴上げるサーバなんて今時無いだろうよ。

>>731
>制作コストが通常よりかかる=重い(遅い)というのが言いたかった。
これは逆もしかりだろ、
フレームワークに依存しないテンプレート構文が使える事で、
導入コストも制作コストも下げられるって人達もいるわけだ。

要は君がSmarty使いこなせてないから、手間がかかると感じているだけだろう。
0735nobodyさん2011/01/26(水) 21:00:36ID:???
>>734に一票
0736nobodyさん2011/01/26(水) 21:01:45ID:???
自演乙
0737nobodyさん2011/01/26(水) 22:06:14ID:???
>>736に1票
0738nobodyさん2011/01/26(水) 22:20:37ID:???
自演認定というキモい流れを作った>>735がいちばん悪い
0739nobodyさん2011/01/26(水) 22:22:36ID:???
>>736に一票
0740nobodyさん2011/01/27(木) 03:04:40ID:???
>>738に1票
0741nobodyさん2011/01/27(木) 09:29:51ID:???
>>732
すまん。FWの打ち間違いだった・・・
ちなみに動的サイトというのは、トップページやサイドバーで
情報が変わるポータルサイトだな。ブログはキャッシュが効くから違うと思う。
>>734
前者はもちろんデバッグして検証した上での意見だよね?
リソースは別にしても実行速度には明らかに違うが出るよ。秒単位で。
そりゃ、多重鯖構造にして負荷分散したら鯖自体の負荷を下げられるだろうけど。

後者は俺が使っているCakePHPの問題なのか、FWに依存した書き方になるんだが。
Cake+Smartyの書き方を覚えなければ行けないから、通常より時間がかかる。
どちらか一方だけの取得では無理。使いこなす・こなせないの問題じゃないだろ。
0742nobodyさん2011/01/27(木) 09:58:07ID:???
Zend Framework + Smartyでやってるが、Frameworkに依存した書き方になると感じた事は無いな。
0743nobodyさん2011/01/27(木) 14:03:42ID:???
Smartyって
{}
になってるけど、
これって変更できんの?
0744nobodyさん2011/01/27(木) 14:13:02ID:???
できる。それは「デリミタ」と言うのでググるときに使ってください。
0745nobodyさん2011/01/27(木) 14:17:24ID:???
ちなみに俺は<{}>してる
0746nobodyさん2011/01/27(木) 14:30:44ID:???
>>744
さんくす!
<smarty />で使ってみたけど見やすくなるね
<smarty $test />とか

sectionしてみたら
<smarty section name=cnt loop=10 />
a
<smarty /section />
閉じタグ変になってワロタwwwww
これって<smarty :section />みたいに変更できないのかな・・・?
0747nobodyさん2011/01/27(木) 21:14:42ID:???
>>746
信じられないかもしれないが、実はSmartyはPHPで書かれている。
つまり・・・PHPが書ければ自分の好きなように改造し放題ってことさ!
0748nobodyさん2011/01/27(木) 21:38:50ID:???
>>741
>リソースは別にしても実行速度には明らかに違うが出るよ。秒単位で。

Smartyが原因で、秒単位で動作が変わる事はありえない。
そんなサーバでSmartyより大規模なcakeが動くとは思えない。
確実にどこかで設計ミスしてるでしょ。

>後者は俺が使っているCakePHPの問題なのか、FWに依存した書き方になるんだが。
設計ミス。
普通はSmarty側からは、Cakeを意識しないように変数なりをassignしてやる。
0749nobodyさん2011/01/27(木) 21:47:34ID:???
>>741
>>FM×Smartyの処理が重なって凄い処理時間になってるぞ。
>>キャッシュ使っても動的なサイトだとあまり意味無いと思うし。
>ちなみに動的サイトというのは、トップページやサイドバーで
>情報が変わるポータルサイトだな。ブログはキャッシュが効くから違うと思う。
トップページやサイドバーが情報変わるからキャッシュ使っても意味ないというのは、
FW使わなくても重さは同じでは?
SmartyのキャッシュはSmarty記法のパース結果をキャッシュしてくれるものだと思うけど。
FW/Smarty関係なくない?
0750nobodyさん2011/01/27(木) 22:34:43ID:???
>>748
「ありえない」っていうけど、もちろん実際に試した上での意見だよね?
俺にはあんたが机上の空論で「そんなわけない!」って
現実見ようとしていないだけにしか受け取れないんだけど。

>>749
PHP→Cake→Smarty と PHP→Cake
と、どちらの方が処理が少なくなるかを考えたら、違いが出て当然だと思うけど。

俺が言う事に対して批判する奴は実際に試した事あるのか?
xdebugなり、Apacheのベンチなり試す方法はいくらでもあるだろ。
確かに設計は悪いかも知れないが、自分の作業した範囲・経験でしか話せないし、
他のみんなはどうか?と思ってググれば「重い」と出る。
ならやっぱり重いよなーと思って書いたまでに過ぎない。

別にFWもSmartyも批判するつもりはないよ。
ただ、重くなるよねって言いたいだけで。
0751nobodyさん2011/01/27(木) 22:40:47ID:???
>>750
いやだから、
�@FW×Smartyは処理が遅い→�Aキャッシュを使えば解決する→�Bしかし動的な部分についてキャッシュは効果ない
という君の話に対して
�C動的な部分はFW使おうが使わまいが毎度動的に生成するんだからFW関係ないんじゃないの?
(FW使わないときに「動的な部分が速くなる」なら話は別だけど)
と疑問に思っただけなんだが、どうなのよ。
俺が何か勘違いしてたら申し訳ないが。
0752nobodyさん2011/01/28(金) 03:50:06ID:???
>>750
実際に試した上で>>734の結論なんだが。
xdebugのプロファイラログを検証した事もあるし、
APC切って単純なPHP単体でのベンチもした事ある。


Smarty導入が負荷になる事は認めるが、負荷で言うならCakeの方が数倍高い。
それなのにSmarty導入するだけで「秒単位」で遅くなる、
ってのは他の部分に何らかの欠陥があるとしか・・・

もし本当ならxdebugのプロファイルログ出してみ?
具体的にどのメソッドに時間かかってて、それがシステム全体の何%の負荷になってる?
0753nobodyさん2011/01/28(金) 04:11:35ID:???
>>750
とりあえず参考までに俺のベンチ結果あげとくな、
糞みたいなサーバのxdebugプロファイルログを、
WinCacheGrindで閲覧して調べた結果。

・環境
 ZendFW(MVC、DB、Session)使用
 APCやMemcachedは無効
 Smartyでは文字コード変換フィルタかまし、
 ヘッダフッタを別ファイルからincludeする。

・結果
 トータル処理に846msかかる
 その内、Smarty全体の処理が75msを閉めており、
 その内、18msがテンプレートコンパイル、12msがinclude処理となっている。
 コール数ではassign、modifiler系が多いが、トータルでも5ms以下となっている。


どんなに複雑なコード書いてもSmartyで1000ms越えるのは難しいな・・・
もしかしてテンプレート内にDBに接続してデータ取得するようなコード書いてね?w
0754nobodyさん2011/01/28(金) 21:38:56ID:???
        ゴガギーン
             ドッカン
         m    ドッカン
  =====) ))         ☆
      ∧_∧ | |         /          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (   )| |_____    ∧_∧   <  おらっ!出てこい>>750
     「 ⌒ ̄ |   |    ||   (´Д` )    \___________
     |   /  ̄   |    |/    「    \
     |   | |    |    ||    ||   /\\
     |    | |    |    |  へ//|  |  | |
     |    | |    ロ|ロ   |/,へ \|  |  | |
     | ∧ | |    |    |/  \  / ( )
     | | | |〈    |    |     | |
     / / / / |  /  |    〈|     | |
    / /  / / |    |    ||      | |
   / / / / =-----=--------     | |
0755nobodyさん2011/01/29(土) 12:45:23ID:???
>>750
他人が『重い』って書いてたからそれを真に受けたの?
その『重い』にもレベルがあるでしょ
『●●っていうケータイ重いよ』というのを聞いて、1kgくらいあると本気で思い込むようなものだよ
それ説明書とか充電器とか合わせた重量測ってるだろwwwそんな感じ

秒単位で遅くなるんなら誰も使ってません、まずそこに気付こうよ
0756nobodyさん2011/01/29(土) 12:58:04ID:???
はい、次の患者さん、どうぞ。
0757nobodyさん2011/01/29(土) 20:23:30ID:???
WindowsXPも出た当初は重い重い言われていたなぁ('ー`)
今そんな事言ったら逆に笑われそうだよね
0758nobodyさん2011/01/29(土) 22:03:51ID:???
>>756
引数を「いんすう」と読んでいた俺に一言
0759nobodyさん2011/01/29(土) 22:35:43ID:???
>>758
影で同僚達に「インスウwwキタww」とか言われてるよ。
0760nobodyさん2011/01/29(土) 23:04:34ID:???
>>757
VistaなんてSP1で軽量化に成功したのに重い重い言われてるよ。
SP1で改善されたと言っても笑われるだけ。
0761nobodyさん2011/01/30(日) 00:02:19ID:???
>>760
例え話なのに論点ズレてる。誰もVistaの話なんてしていない。
0762nobodyさん2011/01/30(日) 16:53:54ID:???
>>751
そういう意味なら俺の解釈が間違ってた。すまん。
>>752-753
そりゃ、最小構成でベンチとっても秒単位で差なんて出ないだろ。
俺は例で「ポータルサイト(動的サイト)」って出したけど、
そこまでの規模についての話をしてるんだよ。
>>755
>>750を読んでくれ。自分で「重くね?」って思ってググったら他人の投稿もあった。
だから俺の印象は間違ってなかったなと思ったに過ぎない。
もちろん、お前らの環境と俺の環境は違うから、コード時代に問題があるという
のもわかる。だが、頭ごなしに「FW+Smartyが重いはずはない!」って
解釈するのはいかがな物かと言いたいだけだ。

なぜか自分が大好きな物を批判されるとそれを認めたくない奴がいるが、
俺もSmartyは使ってるし、別に批判したいわけじゃない。
メリット・デメリット理解した上での使い分けが必要だと思ってるだけ。
あと、自分の意見が100%正しいとも思ってない。だから議論してるわけで。
0763nobodyさん2011/01/30(日) 16:58:36ID:???
突っ込まれる前に誤字修正
コード時代に問題が  → コード自体に問題が


あと、コードの書き方やサーバの設定(環境)によって重さを感じさせない
ように出来るって意見もあるだろうけど、
チューニングしたら重くないというのはまた別の話な気がするけどな。

ま、俺がCakePHPで書いてる書き方をいくら変えたところで
ビューにSmarty使って重いという印象は変わらないと思うよ。
Zend使えばまた別なのかも知れないけど。
0764nobodyさん2011/01/30(日) 19:37:19ID:???
日本語でおk

CakePHPってViewを処理する機構が用意されてるの?
だったらそちらを使った方が親和性が高く、処理は減る→軽くなる可能性はあるね

0.1秒の差でも100回リクエストでトータル10秒だから馬鹿に出来ない
秒単位の差が出ないから問題無いとの判断は違うと思う
最近はモデル部分の肥大化が激しくて、ビューなんざ何使っても関係ねー!って感じ

動的部分を極力JavaScriptにお任せして、ベースのHTMLもキャッシュサーバーに格納される様にしてるw
0765nobodyさん2011/01/30(日) 20:24:06ID:???
>>762
意見受け入れてないのはお前じゃね?
「自分が間違った計測の仕方してる」って可能性は一切無視ですか?

>そりゃ、最小構成でベンチとっても秒単位で差なんて出ないだろ。
>俺は例で「ポータルサイト(動的サイト)」って出したけど、
>そこまでの規模についての話をしてるんだよ。

それは無い。
プロジェクトの規模が上がっても、Smartyにかかるコストはほぼ普遍的だから、
全体が重くなればなるほど、相対的にSmartyのコストは下がる。
トータル5000msのページだろうが、10000msのページだろうが、Smartyは100ms以下でしかない。

全体処理とSmartyの処理負荷が比例しているのであれば、
それは上にも書いたようにテンプレートやプラグイン内に、
DB接続等の極端に重い処理が含まれていると考えられる。
それらは本来Smarty内に含めるべきでは無いし、
それをSmartyの実行性能として含めるべきでも無い。

ご自慢の「俺の検証結果」とやらを調べて、どのメソッドが負荷になってるか教えてくれよ。
皆で問題と解決策を見いだそうぜ。
■ このスレッドは過去ログ倉庫に格納されています