のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,368,763人
昨日:no data人
今日:
最近の注目
人気の最安値情報

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

    php覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    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関係なくない?


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について