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

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    701 : nobodyさん - 2011/01/16(日) 17:09:27 ID:??? (+7,-30,-171)
    アニキぼすけて
    {$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 : nobodyさん - 2011/01/16(日) 17:54:04 ID:??? (+5,-29,-25)
    >>701
    Foreachの中の最初に assign で sample2 とかいう値を別の変数にいれて
    それをキーに使えや。
    703 : nobodyさん - 2011/01/16(日) 18:38:33 ID:??? (+4,-30,-29)
    {$test[$k][`sample$x`] とかで出来なかったっけ。
    704 : nobodyさん - 2011/01/16(日) 19:04:15 ID:??? (+3,-30,-68)
    >>702
    神様ありがとう
    配列用の配列というのが考えつかんでした
    >>703
    やってみたけどだめだったざます
    $test[$k][`sample{$x}`]とか$test[$k][`sample.$x`]とか
    705 : nobodyさん - 2011/01/16(日) 19:35:32 ID:??? (+9,-29,-14)
    "sample$x"
    706 : nobodyさん - 2011/01/16(日) 22:04:42 ID:??? (+2,-30,-122)
    >>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 : nobodyさん - 2011/01/16(日) 22:05:47 ID:??? (+3,-30,-194)
    連レスご容赦くださいまし。
    ×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 : nobodyさん - 2011/01/16(日) 22:51:47 ID:??? (+29,-30,-15)
    $test[$k]["sample$x"]
    709 : nobodyさん - 2011/01/17(月) 00:35:49 ID:??? (+4,-30,-43)
    {$test[$k]["sample`$x`"]} でどうだろうか、$xをバッククォートでくくる。


    http://www.smarty.net/docsv2/ja/language.syntax.quotes.tpl
    710 : nobodyさん - 2011/01/17(月) 12:13:12 ID:??? (+3,-30,-257)
    >>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 : nobodyさん - 2011/01/17(月) 12:18:11 ID:??? (+3,-30,-103)
    アァンバッククォートでした大変失礼いたし
    しかしバッククォートでもエラーでした

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

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

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

    でいけるのはちょっと嬉しい。
    719 : nobodyさん - 2011/01/24(月) 21:56:34 ID:??? (+45,+10,-21)
    あ、あとテンプレートの継承ができるのが便利
    720 : nobodyさん - 2011/01/25(火) 02:16:52 ID:??? (+51,+28,+0)
    結構、便利な事あるじゃんw
    721 : nobodyさん - 2011/01/25(火) 06:36:16 ID:??? (+5,-22,-10)
    記述がスマートになったのはでかい
    2.xはちょっとした計算が必要なだけなのにassignが必要だったりするからな・・・
    722 : nobodyさん - 2011/01/25(火) 07:29:50 ID:??? (+20,+18,-1)
    723 : nobodyさん - 2011/01/25(火) 09:40:47 ID:??? (+10,-23,-18)
    >>719
    テンプレートの継承について詳しく!
    724 : nobodyさん - 2011/01/25(火) 12:30:27 ID:??? (+60,+29,-2)
    >>722
    誤爆に今気がついた。しにたい。
    725 : nobodyさん - 2011/01/25(火) 19:42:15 ID:??? (+88,-7,-62)
    フレームワークにSmarty組み込む例をよく見るんだけど、重くならないか?
    素のPHP+Smartyなら分かるんだが
    726 : nobodyさん - 2011/01/25(火) 20:38:31 ID:??? (+70,+28,-15)
    >>725
    オレオレフレームワーク向けだろう。
    727 : nobodyさん - 2011/01/25(火) 20:48:09 ID:??? (+0,-28,-14)
    別にZFにSmarty組み込むのもありだし
    728 : nobodyさん - 2011/01/25(火) 21:09:42 ID:??? (+67,+29,-40)
    マルチスレッドなApacheで、コンパイル済みのテンプレ処理するだけなら
    そんなに遅くならないんじゃねぇの?

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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