のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,837人
昨日: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
    51 : nobodyさん - 2010/04/13(火) 21:50:04 ID:??? (+22,+4,-2)
    釣れますか?
    52 : nobodyさん - 2010/04/14(水) 13:25:07 ID:??? (+76,+30,+0)
    >>50
    自分は34ですが32ではないです。
    最新どうこうは31と32が言い出した事に過ぎないので、個人的には興味ありません。
    「Smarty2はモダンではない」という意識が合っていればそれ以上の主張は無いです。

    > 少なくともSmartyの開発思想には「権限管理」があり、それを実現するだけの「機能」がある。

    自分の立場は、あなたのおっしゃるこの部分への反対の立場です。

    > 実際に穴をふさぐのは相当難しいと思うよ?

    DBアクセスさせたくなかったらモジュールをロードしなければいいんだし、
    safe_modeという機能があるのもご存じでしょう。肥大化は一切しませんよね。

    本質は「ガチガチに設定すれば安全にだってできるんだ!」じゃなくて、
    「そもそもが安全であるかどうか」でしょ。
    「生PHPは絶対に危険で、Smartyは絶対に安全なんだ」って主張は誤ってると思いますよ。

    だから、その理由をもって生PHPのテンプレートを持つフレームワークを忌避しているなら、
    考え方を柔軟にして、Smarty以外のものも触ってみたらいかがですか、というお話です。
    53 : nobodyさん - 2010/04/14(水) 14:25:55 ID:??? (+62,+29,+0)
    >DBアクセスさせたくなかったらモジュールをロードしなければいいんだし、
    >safe_modeという機能があるのもご存じでしょう。肥大化は一切しませんよね。

    View側はそれでいいのかもしれませんが、実際にそのような設定でシステムを稼働させた事はありますか?
    Controller側でDBアクセスが必要、View側では不要、という場面は多々あると思います。

    >「生PHPは絶対に危険で、Smartyは絶対に安全なんだ」って主張は誤ってると思いますよ。

    はい。そうは思いません。
    ただView側に権限分離の安全策を施したい場合、Smartyに限らずテンプレートエンジンは有意義だと考えています。

    ちなみにFW自体は積極的に導入していますよ。
    View部分のみSmartyを採用する事で、それぞれのViewスクリプトの方言を統一する役割も担っています。

    Twig等のモダンどころもテスト導入してみましたが、乗り換えるコストに対するメリットが少々薄いという印象ですね。
    内部的にはSmartyより遙かに洗練されているとは思いますが。
    54 : nobodyさん - 2010/04/14(水) 14:46:21 ID:??? (+57,+29,-10)
    そもそも隔離スレだったのに不要論を声高に叫ぶヤツが来るからこうなるんだろ
    55 : nobodyさん - 2010/04/14(水) 15:40:44 ID:??? (+57,+29,-49)
    なんかわからんけどいなくならないのよね。
    Smartyが必要な案件に参加できなかったとか具体的な恨みがあるんだろうけど
    56 : nobodyさん - 2010/04/14(水) 15:54:50 ID:??? (+57,+29,-5)
    こんな人格じゃあニワンゴくらいしか入れないだろねぇ
    57 : nobodyさん - 2010/04/14(水) 17:00:33 ID:??? (+36,+8,+0)
    便所の落書きで人格とか言われましても(^o^;
    58 : nobodyさん - 2010/04/14(水) 17:36:17 ID:??? (+48,+25,+2)
    (^o^;)┓
      ┃┃
    59 : nobodyさん - 2010/04/19(月) 23:23:08 ID:??? (+57,+29,-72)
    >Smartyが必要な案件に参加できなかったとか具体的な恨みがあるんだろうけど
    そんなプロジェクトには参画したくありませんから~
    Smartyはいらない子だって分かって!
    60 : nobodyさん - 2010/04/19(月) 23:51:58 ID:??? (+63,+30,-78)
    そうだね。
    あなたと同じくらい、世間様からは必要とされていないのかもしれないね。

    ごめんね・・・ごめんね・・・

    カーチャンの教育が間違っていたね・・・ごめんね・・・J( 'ー`)し

    スレの皆さんも本当に申し訳ありません。
    うちの子も本当は仲間に入れて欲しいだけなんです。
    素直になれなくて・・・ただ、それだけなんです。

    ごめんね・・・ごめんね・・・
    61 : nobodyさん - 2010/04/20(火) 11:15:03 ID:??? (+57,+29,-52)
    結局このスレで有意義な話題が出るわけじゃなく、
    必死のSmarty擁護と煽りが交互に繰り返されるだけという所が、
    Smartyの質の悪さを如実に現しているような気がする。
    62 : nobodyさん - 2010/04/20(火) 13:31:39 ID:??? (+57,+29,-19)
    テンプレをHTMLとjavascriptが辛うじて出来ますくらいの奴にいじらせなきゃいけない時に有効。
    それ以外じゃPHPにテンプレエンジンはいらん。
    63 : nobodyさん - 2010/04/20(火) 14:16:38 ID:??? (+63,+30,-87)
    あのさ、もしかしたら↓の日記に洗脳された人がこのスレで荒らしてるんじゃないのかな
    http://d.hatena.ne.jp/noopable/20090529/1243571310

    Smartyが嫌いなら見にこなけりゃいいのにねw
    何でわざわざ書き込みにくるんだろう
    Smartyを使った仕事もないから需要というのを知らないのかな
    Smartyを完全否定してる人は仕事に関わってなくて、趣味程度な人なんだろうね
    64 : nobodyさん - 2010/04/20(火) 14:21:55 ID:??? (+57,+29,-11)
    そりゃリプライがあるからだろ
    どう見ても狼少年
    てか、ポットかもw
    65 : nobodyさん - 2010/04/20(火) 14:48:10 ID:??? (+57,+29,-55)
    頭悪くてSmartyのメリットを理解出来ない否定派がキーキー喚いてるだけだろ・・・
    本当に不要だと思うなら、こんなスレ来ないだろうし。
    66 : nobodyさん - 2010/04/20(火) 19:21:47 ID:??? (+52,+29,-4)
    無駄に煽るから来るんだと思うが・・・
    67 : nobodyさん - 2010/04/20(火) 20:43:50 ID:??? (+52,+29,-29)
    煽られてるのはスレ住民側だと思うが
    68 : nobodyさん - 2010/04/21(水) 11:02:30 ID:??? (+57,+29,-3)
    いちいち相手しなきゃいいじゃん
    スルー出来ない奴も荒らし
    69 : nobodyさん - 2010/04/21(水) 17:29:06 ID:HlbrRuJm (+138,-30,-116)
    質問してもいいでしょうか

    HTMLにSmartyタグを使って
    <a href="test{$hoge}test">
    こんなのがあった時に、

    <a href={"test{$hoge}test"|urlchange}>
    こんな感じのことをしたいのですが、Smartyがエラーを吐いてしまいます。

    もちろん
    <a href={"test"|cat:$hoge|cat:"test"|urlchange}>
    ここまで書き換えればうまくいくいのですが…。

    うまい解決方法はないでしょうか?
    71 : nobodyさん - 2010/04/21(水) 19:37:30 ID:??? (+50,+22,-4)
    それこそアンチが言うようにPHP側で処理すればいい
    72 : nobodyさん - 2010/04/22(木) 01:32:00 ID:??? (+57,+29,-38)
    SmartyはVer3系になって
    あまりの迷走っぷりに皆に愛想つかされて消えて欲しいな☆
    73 : nobodyさん - 2010/04/22(木) 10:28:49 ID:??? (+57,+29,-47)
    えー、Smartyタグを多重に囲うとエラーになるの?w
    何それしょぼすぎるw
    74 : nobodyさん - 2010/04/22(木) 15:25:41 ID:??? (-3,-30,-54)
    文法間違えればそりゃエラーになるだろw

    >>69-70
    文字列内で変数を展開する場合は、バッククォートで囲う必要があります。
    <a href={"test`$hoge`test"|urlchange}>

    詳しくは基本構文を参照してください
    http://www.smarty.net/manual/ja/language.syntax.quotes.php
    75 : nobodyさん - 2010/04/22(木) 18:34:28 ID:??? (+7,-30,-70)
    >>74
    > HTMLにSmartyタグを使って
    > <a href="test{$hoge}test">
    > こんなのがあった時に、

    詳しくを参照する前に、質問者のレスを読みましょう

    必ずこうなってるなら話はべつだがな
    <a href={"test`$hoge`test"}>

    それに関数使ってた場合は絶対無理だし

    <a href={"test"|komekome}>
    <a href={{"test"|komekome}|urlchange}>
    76 : nobodyさん - 2010/04/22(木) 18:55:08 ID:??? (-1,-29,-59)
    SmartyテンプレートをDreamweaverで編集している人いる?
    Smartyタグを不可視エレメント表示できないかな
    77 : nobodyさん - 2010/04/22(木) 19:12:29 ID:??? (-9,-29,-15)
    >>69-70
    関数まで考慮するならpostfilter、outputfilterで実装出来るけども
    やろうとしてる事自体の設計が間違ってると思う。
    78 : nobodyさん - 2010/04/22(木) 21:35:01 ID:??? (+62,+29,-63)
    いや、設計は間違ってないだろ
    手動でSmartyタグを書いたあとに、一括して全ての特定の何かを置換したい
    そういったことはママあることだ

    あと、実装するならprefilterだろう
    postfilterで何する気だ
    79 : nobodyさん - 2010/04/22(木) 23:43:48 ID:??? (+175,-29,-98)
    思想としてはありだろうけど、>>69>>75みたいな状況になってしまう時点で実装方法の設計が間違ってるかと。


    >>69の要件を実装したいならprefilter内で自前で構文解析するより、
    postfilterもしくはoutputfilter内で必要部分をSmatyタグに置換して、再帰的にSmartyテンプレートとして実行すればいいんじゃないのかね。

    prefilterで何する気?
    80 : nobodyさん - 2010/04/22(木) 23:48:30 ID:??? (+16,-19,-43)
    追記

    憶測だけども、>>69は全てのリンク先に特定の処理を施したいって事だろうから、
    簡単なoutputfilterで文字列置換してやるだけで実現出来ると思うよ。

    無理矢理Smartyタグに置換し直す必要性があるのか?って事ね。
    81 : nobodyさん - 2010/04/22(木) 23:51:18 ID:??? (+141,+29,-45)
    思想としてはありだから、できないのか質問に来たわけだろ?
    結果は「できない」

    自身の定義タグを再帰的に処理できないとか、Smartyのしょぼさがうかがえるわ
    82 : nobodyさん - 2010/04/22(木) 23:59:07 ID:??? (+10,-29,-52)
    >>79
    > postfilterもしくはoutputfilter内で必要部分をSmatyタグに置換して、再帰的にSmartyテンプレートとして実行すればいいんじゃないのかね。
    これの意味がわからね
    どういう動作させる気なの?
    83 : nobodyさん - 2010/04/23(金) 00:02:20 ID:??? (+70,+30,-135)
    >>結果は「できない」
    お前がそう思うんならそうなんだろうな・・・お前の中では。


    再帰的に処理したいならフィルタ書くなり、再帰的にfetchする実装を行えばいいだけでさほど難しくないよ。
    逆に再起処理は自前で実装して再起回数を制御しないと無限ループしてしまうと思うんだけど。

    Smartyがしょぼいんじゃなくて、使いこなせてないだけだろw
    84 : nobodyさん - 2010/04/23(金) 00:17:01 ID:??? (+117,-30,-118)
    >>82
    <a href="test{$hoge}test">を実行する。
    <a href="testHOGE_VALUEtest">という出力になる。
    outputfilterで<a href="{"testHOGE_VALUEtest"|urlchange}">という風に置換して、再度実行する。
    別にoutputfilterでなくてもいいけど、好きなタイミングで再起処理すればいいんじゃないかね。


    どうしても自前で構文解析して、一度の実行で処理したいなら{capture}タグあたりへの置換を駆使すればいいと思うよ。
    85 : nobodyさん - 2010/04/23(金) 10:10:58 ID:??? (+39,-29,-161)
    いくらなんでも、
    Smartyの出力処理 → HTML構文解析処理 → Smartyタグを新たに自動挿入 → Smartyの出力処理

    と、毎回のアクセスでやるのは動作が重すぎるので…

    >逆に再起処理は自前で実装して再起回数を制御しないと無限ループしてしまうと思うんだけど。
    それこそ無限ループさせる人間がしょぼいと思うんですが…
    while文は無限ループする可能性があるので実装しない。みたいなもんで、本末転倒かと
    86 : nobodyさん - 2010/04/23(金) 11:52:30 ID:??? (-1,-29,-43)
    {capture}を使うことで、狙った通りの挙動が可能なのを確認しました。
    今件はこれで終わりにしたいと思います。
    色々ありがとうございました。
    87 : nobodyさん - 2010/04/23(金) 13:07:05 ID:??? (+94,+29,-30)
    まったく役に立ってないけどな
    再起処理は自前で実装して再起回数を制御しないと無限ループしてしまう(キリッ
    88 : nobodyさん - 2010/04/23(金) 13:35:31 ID:??? (+56,+28,-20)
    capture関数を見ていたところ、素直にオリジナルのブロック関数を作ればよいということがわかりました。
    報告しておきます。
    89 : nobodyさん - 2010/04/23(金) 15:05:36 ID:??? (+73,+30,-116)
    器の小さい話だけど1人でサイト作る時は、smarty便利じゃない?
    またはデザインが先に出来てて、仕組みを後から作るときとかも。

    会員サイト作る時はセッションセキュ考えるのめんどくさいからFWつかっちゃうけど、
    joinの嵐サイト作る時は、smartyのみ使う。

    2つのキャッシュ機能使いわけが便利ですし。


    と俺のお婆ちゃんが言ってた。
    90 : nobodyさん - 2010/04/23(金) 17:04:33 ID:??? (+101,+29,-256)
    >>85
    >>逆に再起処理は自前で実装して再起回数を制御しないと無限ループしてしまうと思うんだけど。
    >それこそ無限ループさせる人間がしょぼいと思うんですが…
    >while文は無限ループする可能性があるので実装しない。みたいなもんで、本末転倒かと

    Smarty自身が再帰機能を持っていた場合、ループ条件はどうやって決めるのって話だが、
    自前でループ条件実装しなきゃ駄目だろ?どこに実装しないなんて書いてあるの?w


    >Smartyの出力処理 → HTML構文解析処理 → Smartyタグを新たに自動挿入 → Smartyの出力処理
    という流れを再帰処理って言うんだけど大丈夫?
    再帰処理ってわかってる?w
    91 : nobodyさん - 2010/04/23(金) 17:08:00 ID:??? (+75,+30,-71)
    >>87
    なんだ、お前役に立ってないって自覚してたのか、案外偉いな。

    結果は「できない」(キリッ
    Smartyのしょぼさがうかがえる(キリッ

    とか言ってる時点で気づいて欲しかったが・・・
    「できない」wとか言った人が何反論してもむなしいぜ?
    92 : nobodyさん - 2010/04/23(金) 17:47:56 ID:??? (+97,+29,-168)
    俺Smartyの仕様なんてしらねーもんw
    少なくともここの連中的な結論は「できない」だっただろw

    もしくは再帰的にSmartyを動かせ(キリッ
    おいおいw
    パフォーマンスガン無視ですかw

    で、真実はSmartyにちゃんと対応できる機能がありました

    あれあれ?Smartyを馬鹿にするやつは使いこなせてないからだ(キリッ とか言ってた人達、使いこなしてないですねー?w
    93 : nobodyさん - 2010/04/23(金) 17:48:53 ID:??? (+148,+29,-20)
    >>90
    え・・・smartyタグが全て無くなったら抜けるが分岐条件だろJK
    94 : nobodyさん - 2010/04/23(金) 19:03:03 ID:??? (+79,+29,-130)
    >>92
    開き直りカッコイイです。
    どのレスが「できない」なんて言ってるの?お前のレスだけだよw

    >で、真実はSmartyにちゃんと対応できる機能がありました
    ねぇよw {capture}タグに置換、ブロックタグの作成で実装したって書いてあるだろ
    素人だからレスの意味もわからんのだろうけど、これ、Smartyの機能じゃなくて独自拡張な。

    >>93
    Smartyタグが無くなったら?
    それこそ最低2回は構文解析入ってパフォーマンスガタ落ちなんじゃないの?w


    目先の論破にムキになって、自分にブーメランが返ってくる良い例だな君は。
    95 : nobodyさん - 2010/04/23(金) 20:53:30 ID:??? (+104,+29,-93)
    >>93は俺じゃねーよw
    対応できる機能「あった」じゃん。独自拡張機能っていう機能が

    でもそれを質問者に教えてあげることができなかったんでちゅよねーw
    使いこなせば便利なSmarty(キリッ
    Smartyに不満があるのは使いこなせてないから(キリッ
    96 : nobodyさん - 2010/04/23(金) 20:56:53 ID:??? (+47,+5,-24)
    >>95
    {capture}もフィルタでの置換処理も、全部>>-84までで出てるけどw
    言い返せなくて脳内変換しちゃったかな?かな?

    「できない」とか「無い」とか言ってる人お前くらいだよw

    97 : nobodyさん - 2010/04/23(金) 21:27:49 ID:??? (+50,-30,-167)
    71 名前:nobodyさん[sage] 投稿日:2010/04/21(水) 19:37:30 ID:???
    それこそアンチが言うようにPHP側で処理すればいい

    74 名前:nobodyさん[sage] 投稿日:2010/04/22(木) 15:25:41 ID:???
    文法間違えればそりゃエラーになるだろw

    77 名前:nobodyさん[sage] 投稿日:2010/04/22(木) 19:12:29 ID:???
    >>69-70
    関数まで考慮するならpostfilter、outputfilterで実装出来るけども
    やろうとしてる事自体の設計が間違ってると思う。

    80 名前:nobodyさん[sage] 投稿日:2010/04/22(木) 23:48:30 ID:???
    追記

    憶測だけども、>>69は全てのリンク先に特定の処理を施したいって事だろうから、
    簡単なoutputfilterで文字列置換してやるだけで実現出来ると思うよ。



    captureなんてどこにもないが?
    98 : nobodyさん - 2010/04/23(金) 21:30:43 ID:??? (+57,+29,-2)
    ブロック関数という言葉すらでてないな
    99 : nobodyさん - 2010/04/23(金) 21:54:14 ID:??? (+50,+29,-11)
    もういじめてやるなよ
    アドバイスできるほど理解のある人間が、たまたまその時間帯いなかっただけだろ
    100 : nobodyさん - 2010/04/23(金) 22:03:13 ID:??? (+38,-29,-65)
    >>97
    >>84
    >どうしても自前で構文解析して、一度の実行で処理したいなら{capture}タグあたりへの置換を駆使すればいいと思うよ。

    で、他に言いたいことは?
    {capture}自体がブロックタグって事は理解してるかい?w
    質問主は{capture}使ってみて、拡張したくなったから独自ブロックタグ作ったんだろ。

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

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


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