元スレ【PHP】 Smarty 【テンプレートエンジン】 第2章
php覧 / PC版 /みんなの評価 :
701 = :
アニキぼすけて
{$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}
702 = :
>>701
Foreachの中の最初に assign で sample2 とかいう値を別の変数にいれて
それをキーに使えや。
703 = :
{$test[$k][`sample$x`] とかで出来なかったっけ。
704 = :
>>702
神様ありがとう
配列用の配列というのが考えつかんでした
>>703
やってみたけどだめだったざます
$test[$k][`sample{$x}`]とか$test[$k][`sample.$x`]とか
705 = :
"sample$x"
706 = :
>>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"]でもエラーでした。
配列の配列を作るのが無難ぽいですね
707 = :
連レスご容赦くださいまし。
×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) 以下省略
708 = :
$test[$k]["sample$x"]
709 = :
{$test[$k]["sample`$x`"]} でどうだろうか、$xをバッククォートでくくる。
http://www.smarty.net/docsv2/ja/language.syntax.quotes.tpl
710 = :
>>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"] → エラー
711 = :
アァンバッククォートでした大変失礼いたし
しかしバッククォートでもエラーでした
Fatal error: Smarty error: [in test.tpl line 27]: syntax error: unrecognized tag: $test[$k]["sample`$x`"] (Smarty_Compiler.class.php, line 436)
712 = :
>>708でできなかったの?
714 = :
Smarty2から3にするメリットってあるのかな・・・?
よくわからん。
715 = :
ありまくり
716 = :
テンプレートエンジンにそこまでの機能いるのかって気もするので2系と3系で分岐したらいいかも・・・
717 = :
>>715
ありまくり?
Javascript内で {literal} が不要になったことくらいだと思うけどなぁ・・・
718 = :
あ、あと、foreach の構文がPHPと同じになったことだな。
{foreach $arrayvar as $itemvar}
{foreach $arrayvar as $keyvar=>$itemvar}
でいけるのはちょっと嬉しい。
719 = :
あ、あとテンプレートの継承ができるのが便利
720 = :
結構、便利な事あるじゃんw
721 = :
記述がスマートになったのはでかい
2.xはちょっとした計算が必要なだけなのにassignが必要だったりするからな・・・
722 = :
http://hibari.2ch.net/test/read.cgi/php/1168761226/l50
上級者ェ・・・
723 = :
>>719
テンプレートの継承について詳しく!
724 = :
>>722
誤爆に今気がついた。しにたい。
725 = :
フレームワークにSmarty組み込む例をよく見るんだけど、重くならないか?
素のPHP+Smartyなら分かるんだが
726 = :
>>725
オレオレフレームワーク向けだろう。
728 = :
マルチスレッドなApacheで、コンパイル済みのテンプレ処理するだけなら
そんなに遅くならないんじゃねぇの?
それでも遅さが気になるなら、DBのチューニングが先だと思うぞ。
729 = :
>>725
散々言われているが今のハードウェア環境なら微々たる差しか出ない。
キャッシュとか駆使するのであればむしろ軽くなる事だってある。
730 = :
>>726
俺もオレオレに組み込んでるなw
>>728-729
散々言われてない気がするけど、xdebugとかで内部処理見たか?
FM×Smartyの処理が重なって凄い処理時間になってるぞ。
キャッシュ使っても動的なサイトだとあまり意味無いと思うし。
CakePHPに組み込んだけど、Cakeの書き方になるから
Smarty本来の使い勝手も失われるし。
(Cakeは配列中心だから、そのままSmartyで使うのは難がある
731 = :
そう言うわけで、「重い」ってのは動作だけじゃなくて、
制作コストが通常よりかかる=重い(遅い)というのが言いたかった。
せっかくフレームワーク使ってるのに、
余計な処理を加えて開発が遅くなるなら意味無いなってね。
732 = :
>>730
FMって何か分からんけど、動的なサイトだと意味ないって具体的にどんな場合?
733 = :
>>731
製作コストが通常よりかかる?FWは開発効率を上げるために使うものだと思うが。
735 = :
>>734に一票
736 = :
自演乙
737 = :
>>736に1票
738 = :
自演認定というキモい流れを作った>>735がいちばん悪い
739 = :
>>736に一票
740 = :
>>738に1票
741 = :
>>732
すまん。FWの打ち間違いだった・・・
ちなみに動的サイトというのは、トップページやサイドバーで
情報が変わるポータルサイトだな。ブログはキャッシュが効くから違うと思う。
>>734
前者はもちろんデバッグして検証した上での意見だよね?
リソースは別にしても実行速度には明らかに違うが出るよ。秒単位で。
そりゃ、多重鯖構造にして負荷分散したら鯖自体の負荷を下げられるだろうけど。
後者は俺が使っているCakePHPの問題なのか、FWに依存した書き方になるんだが。
Cake+Smartyの書き方を覚えなければ行けないから、通常より時間がかかる。
どちらか一方だけの取得では無理。使いこなす・こなせないの問題じゃないだろ。
744 = :
できる。それは「デリミタ」と言うのでググるときに使ってください。
746 = :
>>744
さんくす!
<smarty />で使ってみたけど見やすくなるね
<smarty $test />とか
sectionしてみたら
<smarty section name=cnt loop=10 />
a
<smarty /section />
閉じタグ変になってワロタwwwww
これって<smarty :section />みたいに変更できないのかな・・・?
747 = :
>>746
信じられないかもしれないが、実はSmartyはPHPで書かれている。
つまり・・・PHPが書ければ自分の好きなように改造し放題ってことさ!
748 = :
>>741
>リソースは別にしても実行速度には明らかに違うが出るよ。秒単位で。
Smartyが原因で、秒単位で動作が変わる事はありえない。
そんなサーバでSmartyより大規模なcakeが動くとは思えない。
確実にどこかで設計ミスしてるでしょ。
>後者は俺が使っているCakePHPの問題なのか、FWに依存した書き方になるんだが。
設計ミス。
普通はSmarty側からは、Cakeを意識しないように変数なりをassignしてやる。
749 = :
>>741
>>FM×Smartyの処理が重なって凄い処理時間になってるぞ。
>>キャッシュ使っても動的なサイトだとあまり意味無いと思うし。
>ちなみに動的サイトというのは、トップページやサイドバーで
>情報が変わるポータルサイトだな。ブログはキャッシュが効くから違うと思う。
トップページやサイドバーが情報変わるからキャッシュ使っても意味ないというのは、
FW使わなくても重さは同じでは?
SmartyのキャッシュはSmarty記法のパース結果をキャッシュしてくれるものだと思うけど。
FW/Smarty関係なくない?
みんなの評価 :
類似してるかもしれないスレッド
- 【PHP】 Smarty 隔離スレ 【テンプレート】 (1001) - [48%] - 2010/3/28 11:16 ○
- 【PHP】Laravel【フレームワーク】 Part.11 (870) - [43%] - 2022/8/28 15:45
- 【PHP】Laravel【フレームワーク】 Part.2 (917) - [43%] - 2019/9/10 9:15
- 【PHP】Laravel【フレームワーク】 Part.3 (983) - [43%] - 2021/2/12 4:00
- 【PHP】Laravel【フレームワーク】 Part.12 (314) - [43%] - 2023/1/30 18:45
- 【PHP】Laravel【フレームワーク】 Part.4 (460) - [43%] - 2021/4/4 4:00
トップメニューへ / →のくす牧場書庫について