トップページ⇒php
984コメント324KB

【PHP】Smarty【Template】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/03/10 00:57ID:NhgrjNBT
このスレ、あってもいいんじゃないかと。

本家(英語)
http://smarty.php.net/

日本語マニュアルとか
http://sunset.freespace.jp/smarty/
0751nobodyさん2005/04/22(金) 14:11:23ID:???
>>750
手元の環境ではそういう現象は起きなかった。
試すまでもなく、普通に考えても起きるわけないんだけどなぁ。
>>746が聞いてるけど、テンプレートとsmarty出力結果の差異はどうなのよ?
0752nobodyさん2005/04/22(金) 14:15:18ID:???
>>750
ブラウザが見てるHTMLを比較してみな。

具体的には、各々のHTMLをブラウザのソースを表示を使って取得して、それらを比較するって事ね。
07537422005/04/22(金) 14:40:09ID:NegODiov
>>751 >>752
レスありがとうございます。
ソースを表示で見る事は思いつきませんでした_| ̄|○
さっそく見てきたのですが、きっちりwidth="50"だけが
消えていました。
なんでなのか、まったく想像がつかないです。
Smartyの嫌がらせとしか思えないです・・・・。
0754nobodyさん2005/04/22(金) 14:44:53ID:???
>>753
なんでもそうだけど、プログラミングってのは、鏡だと思うと良いよ。
自分のやった事が、そのまま反映されてるだけだよ。

後、デバックの極意なんだけど、コーヒーでも淹れて、一服しな。
これは、本当に良く効く。いや、マジで。
07557422005/04/22(金) 14:49:47ID:???
>>754
ありがとうございます。 そーいえば2日徹夜でした。
気がつけばすごい眠いかもです。
・・・せっかくの有給なのに!なんてこったいです_| ̄|○
一回、寝てみます。
0756nobodyさん2005/04/22(金) 15:38:04ID:???
キャッシュが効いてるだけじゃないの?
07577422005/04/23(土) 08:45:37ID:???
こんにちは。
おきてから、ふと思い立ってセルに折り返し無し指定を
付けてみたら、意図した横幅で表示できました。
ご指導してくださった皆様、ありがとうございました。
0758nobodyさん2005/04/23(土) 11:56:15ID:???
>>756 に一票 おそらくそれでしょ
0759nobodyさん2005/04/23(土) 11:56:52ID:???
>>757 を見ずにカキコしてしまいました。 鬱。
0760nobodyさん2005/04/23(土) 16:06:08ID:???
教室の通路を通るときに、

   こんなところにたって雑談している女いると
    ↓
机 机女 机 机
   女
机 机  机 机

   わざわざここを通って女の尻にちんぽ擦りつけながら通った
     ↓
机 机女 机 机
   女
机 机  机 机
0761nobodyさん2005/04/23(土) 18:16:06ID:???
えいじ
0762nobodyさん2005/04/24(日) 16:48:56ID:f26GRMZz
質問です。
{foreach}{/foreach}なんかのループから抜けるにはどうしたら
よいのでしょうか。
php で言う break; がしたいのです。
0763nobodyさん 2005/04/24(日) 18:32:34ID:???
なんらかの意図によって変ってくるのでは?
0764nobodyさん2005/04/24(日) 18:43:22ID:f26GRMZz
>>763
ありがとうございます。そういうことではなくて、
{foreach}
{if $hoge == $fuga}
{break}
{/if}
{/foreach}

といったような{break}なんてのがあればいいのですが、無いですよね。
相当するものってありますでしょうか。
0765nobodyさん2005/04/24(日) 21:16:16ID:???
>>764
そういう処理はSmartyに配列をアサインする前に済ませておくものでは?
0766nobodyさん2005/04/24(日) 21:22:02ID:???
>>764
僕もassign or appendする前に処理しとくべきだと思うが、
無理矢理やるならこんなかな

{eval var=0 assign="a_break"}
{foreach from=$a_array item=a_item}
{if $a_item == '以降break'}
 {eval var=1 assign="a_break"}
{elseif $a_break==0}
 {$a_item}
{/if}
{/foreach}
0767nobodyさん2005/04/24(日) 22:05:50ID:???
showは使えない?
0768nobodyさん2005/05/02(月) 03:39:29ID:zPNJQI1N
修飾子にオブジェクトのメソッドを指定する方法は
ないのでしょうか?
0769nobodyさん2005/05/05(木) 23:04:03ID:HD8kZxJB
テンプレートの中にサブルーチンみたいなものを書くことはできない?
離れた場所に何度も出てくる要素を、サブルーチン呼び出しみたいに
一元的に記述したいんだけど。
あらかじめmodelで処理しておけばいいのかもしれないけど
視覚的要素だからテンプレートの中に入れておきたい
0770nobodyさん2005/05/05(木) 23:25:33ID:???
プラグインとか{php}
0771nobodyさん2005/05/05(木) 23:28:23ID:???
>>770
php直書き出来たんだ
激しくさんくすこ
0772nobodyさん2005/05/06(金) 00:15:12ID:???
そしてそれが意味することの重大さに戦慄を覚えるのであった。。
いや、まぁ、デザイナと喧嘩してるんでもなきゃ別に問題ないんだけどね。
0773nobodyさん2005/05/06(金) 00:49:55ID:???
コワイコトイワナイデ
0774nobodyさん2005/05/06(金) 01:25:35ID:???
普通にinclude使うのが安全だと思うけどねえ。
パラメータも渡せるし。
まあ本人が満足なら良いんだけど。
0775nobodyさん2005/05/06(金) 01:28:58ID:???
>>769
SSIじゃだめ?
0776nobodyさん2005/05/09(月) 10:21:54ID:Ogk2vGAk
$aaa['111']['222']['333'] = 'あいう';
$bbb['123'] = '222';
と定義しておき
{$aaa.111.$bbb.123.333}
とし「あいう」と表示したいのですが
意図した通りには動作しません。感覚的には
{$aaa.111.($bbb.123).333}
というような事をしたいと思っています。
template tool-kitだと
[% $aaa.111 _ $bbb.123 _ 333 -%]
というような感じで出来たと記憶していますが
smartyの場合はどのようにすればよいでしょうか。
0777nobodyさん2005/05/10(火) 12:35:26ID:???
{$aaa[111][$bbb[123]][333]}ってできない?
っていうかテンプレートにこんな変数書かなくてすむように
ロジックを工夫したほうがいいよ。
0778nobodyさん2005/05/10(火) 15:41:39ID:???
レスありがとうございます。
>>777
>{$aaa[111][$bbb[123]][333]}ってできない?
これでは上手くいきませんでした。

>っていうかテンプレートにこんな変数書かなくてすむように
>ロジックを工夫したほうがいいよ。
MVCモデルを実現しようとした場合、このようなケースに遭遇する事は
多いと思うのですがいかがでしょうか。
0779nobodyさん2005/05/10(火) 17:11:51ID:???
ほんとだ。{$aaa[111][$bbb[123]][333]}
ではコンパイルエラーになるね。
{$aaa.111[$bbb.123].333} ではどう?

コンパイルファイルのコードを確認してみたらいいかも。

どうしてもテンプレートでやりたきゃ
{assign var="ccc" value=$aaa.111} とかなんとか。
0780nobodyさん2005/05/10(火) 17:16:42ID:???
どうも "[]"の入れ子がだめみたい。
0781nobodyさん2005/05/10(火) 17:53:28ID:???
>{$aaa.111[$bbb.123].333}
これでも駄目でした。
>{assign var="ccc" value=$aaa.111} とかなんとか。
これも考えたのですがassign関数は$aaa.111を$aaa['111']とは見てくれず
「$aaa . ".111"」と解釈されてしまうみたなんです。
出来上がったキャッシュファイル、Smartyのソースを確認して検証してみます。
0782nobodyさん2005/05/10(火) 18:19:28ID:???
{php echo $this->_tpl_vars['aaa']['111'][$this->_tpl_vars['bbb']['123']]['333']}

こんなこともわからんのか馬鹿どもめ!!!!!!!!
0783nobodyさん2005/05/10(火) 18:53:40ID:???
{$aaa[111][$bbb.123][333]}

{$aaa.111[$bbb.123].333}

{assign var="ccc" value=$aaa.111}
{assign var="ddd" value=$bbb.123}
{$ccc[$ddd].333}

{php}
echo $this->_tpl_vars['aaa']['111'][$this->_tpl_vars['bbb']['123']]['333']
{/php}

すべて"あいう"と表示されるけどなぁ。
あと{php}は$security=trueで使えないってことだけ。為念。
0784nobodyさん2005/05/11(水) 13:47:45ID:???
改めて>779、>782、>783の方法で確認してみた所、正常に表示出来ました。
しかし開発中のソースで試したところ、期待通りの動作をしませんでした。
原因を追ってみると数字と文字(配列と連想配列?)の場合で挙動が違うようでした。

・定義
$aaa['kkk']['222']['333'] = 'あいう';
・テンプレート設定
1={$aaa[kkk][222][333]}
2={$aaa.kkk.222.333}
・結果
1=
2=あいう
・キャッシュされたphpの中身
1=<?php echo $this->_tpl_vars['aaa'][$this->_sections['kkk']['index']][222][333]; ?>
2=<?php echo $this->_tpl_vars['aaa']['kkk']['222']['333']; ?>

感覚的には{$aaa['kkk'][222][333]}とかでいけそうですがエラーでした。
初めに提示した前提条件が自分の実環境と異なり、オマエらの労力を無駄に消費させてしまい申し訳ありません。
0785nobodyさん2005/05/11(水) 17:37:03ID:???
Smarty_Compiler.class.php 1750行以降
[]のなかのインデックスは数字が変数じゃなければsection変数に変換されるね。
この挙動はこれでいいのかな?

確かに知らなきゃはまる。
0786nobodyさん2005/05/13(金) 12:08:00ID:???
ぶっちゃけSmartyはデザイナーとの共同作業には向かないでしょ。
テンプレートにロジックは多少なりとも入れてはいけないと
思うのだが、なんでSmartyなんてヘンテコな物が流行るのか?
HTML_Template_Sigma使えよお前ら。
0787nobodyさん2005/05/13(金) 12:55:02ID:???
>>786
もとデザイナーで今はプログラマーに転職した俺から言わせれば、
Smartyはデザイナーとの共同作業に向いてると思うぞ?

別にデザイナーにSmartyの形にしてもらう訳じゃない。
デザイナーには本当にデザインだけしてもらう。
レイアウトの関係上、ダミーでいいから勝手ににデータを固定で打ってもらう。
例えば、金額のところには、\999,999,999とか見たいな感じ。

そのデザインが出来上がったら、プログラマ側で、そのデータ固定になってた部分に
ロジックなりを書き込む。
此処で、デザインがちょっと・・・という事になっても、そのロジックが書いたままの
テンプレートをデザイナーに渡して修正してもらえば良い。

というのは、Smartyの記述がされていても、HTMLとして普通に開けて、
データ固定で売ってもらった所が変わってるだけだから、
デザインする上では何の支障も無い。
0788nobodyさん2005/05/13(金) 16:21:59ID:???
>>787
じゃあ、ロジックを入れたあとにデザインの修正が出た場合はどうする?
デザイナーが持ってるマスターのテンプレートを修正してもらって
その後ロジック入れなおしだ。Smartyという名前なのにスマートじゃないね。
大体テンプレートにロジックいれたらテンプレートの意味ないんだが。
テンプレートってのは純粋なHTMLであるべきで、テンプレートをブラウザで
見たらどのような物か分かるべきで、オーサリングツールで何の問題もなく
開くことができるべき。
0789nobodyさん2005/05/13(金) 16:28:18ID:???
>>788
ロジックって、ループとかその程度じゃないの?
表形式のデータの部分をループさせるとか。

それに、そういったロジック入れたままでもデザイン修正はできるよね。
ロジック入ったままのファイルをデザイナーに渡して、それを修正してもらえばいいんだし。

つうか、Smartyのロジックが掛かれてても、ブラウザで普通に見られるし、
何の問題も無いような・・・

Smarty使ったことないのかな・・・
0790nobodyさん2005/05/13(金) 16:42:31ID:???
アンチSmartyスレ立ててそっちでやってね
0791nobodyさん2005/05/13(金) 16:45:25ID:???
>>788
テンプレートにロジックを入れると気持ち悪いという主張は理解出来る。
ただ、php 自体 html にロジックを埋め込むための言語として出来たもんだし、
そういう問題意識は php プログラマには希薄なんだよ。
0792nobodyさん2005/05/13(金) 18:47:13ID:???
>>788
PHPがリクエストに対する処理から吐き出しまでを行い、
処理データを取捨選択するのがsmartyという流れだと思えば良いんじゃない?
smartyは基本的に流れてるデータをキャッチするだけなんだしさ。
0793nobodyさん2005/05/13(金) 19:40:27ID:???
PHPでテンプレートエンジンが使われるようになったのは
PHPコードにデザインが入っているのが「キモい」からだろ?
SmartyによってせっかくPHPコードからHTMLを分離したのに
HTML側にロジックが(多少なりとも)入ってしまったら
元の木阿弥だろっつーのよ。理解できんだろうなあんたらには。
0794nobodyさん2005/05/13(金) 20:12:17ID:???
>>793
言わんとしてることは分かるけど、その問題はSmarty独自の問題なのか?
それは使ってる人自体の使い方などが悪いとかそういう問題じゃないの?
0795nobodyさん2005/05/13(金) 20:12:52ID:???
>>793
>PHPでテンプレートエンジンが使われるようになったのは
>PHPコードにデザインが入っているのが「キモい」からだろ?

前提が間違っとる。

おれはSmartyってのはMVCのViewをデザイナに(半ばだまして)やらせて
プログラマが楽するものだと理解している。つまり、テンプレートエンジン
のなかで、ロジックが記述可能なものはそういう意図で作られているわけだ。


Viewの機能を受け持つ以上、あの程度のロジックは書けないと俺が困る。
0796nobodyさん2005/05/13(金) 20:21:31ID:???
>>793
じゃあどうやって可変長の配列をテンプレートで扱うのよ?
「ロジック」ったってPHPコードをベタ書きするわけじゃなし。
0797nobodyさん2005/05/14(土) 00:24:43ID:???
>>795
あんたと仕事をするデザイナーは余計なこと(Smartyの独自タグ)まで
覚えさせられて可哀相にな。プログラマが楽するためにデザイナーが
犠牲になるわけだ。つくづく自分勝手な考え方だな。

>>796
例えばHTML_Template_Sigmaでは、ループや分岐となる部分は
とりあえず<!-- BIGIN hoge -->と<!-- END hoge -->で囲むんだよ。
その囲んだ部分をどのように使おうと自由。
デザイナーはまったく変なロジックなど意識しなくて良いし、
何よりもただのコメントなので妥当なHTMLとなり、オーサリングツール
でも問題なく開けるし、ブラウザで開いてもどのようなテンプレートか
一目瞭然で分かる。
0798nobodyさん2005/05/14(土) 01:09:26ID:???
色んな分業の仕方があると思うけど、
俺の関わったプロジェクトだと
・デザイナー:html/JSPによる値を画面に展開するロジック
・プログラマ:J2EE部分のビジネスロジック
だった。その程度のことが出来ないデザイナは要らないって。

ただ、これは社内のイントラの仕事だったので
デザインの比重が大きいものだと、本当に絵を描くだけ
アイコン作るだけのデザイン担当者も必要だと思う。
0799nobodyさん2005/05/14(土) 03:14:15ID:???
>>798
そういうプログラマよりの自分勝手な考えの奴が多いから
プログラマは性格が悪いなどのレッテルを貼られるんだよ。
ちょっとは人の身になって考えるということをしてみたら?
そりゃデザイナーでもJavaScriptだのJSPやSmartyなどの独自タグ
覚えようとする前向きな人もいるけど、やっぱりデザイナーの仕事は
純粋なデザインであってコーディングはプログラマの仕事だろ。
逆にプログラマはHTMLやCSSなどの知識はあって当たり前で、
俺はDreamweaverで雛形作って渡したりしてるけどね。
0800nobodyさん2005/05/14(土) 03:23:02ID:???
>>799
?それをデザイナよりの自分勝手な考えとは言わないのか?
08017952005/05/14(土) 03:48:00ID:???
>>799
でもさ、デザイナだってテーブルの行ごとに色分けしたくなったくらいで
プログラマの仕事が終わるのを待ってたら締め切りが守れないぜ。

けして意地悪からだけでデザイナの仕事を増やしている訳でなく、
そういったデザインよりのロジックはデザイナがやるのが良いという
局面もあるんじゃないかな。とくに細かい変更要請がクライアントから
頻繁に飛んでくるのにつきあわなきゃいけないとか言う場合には。


あと、BIGINじゃなくって、BEGINね。
Template_SigmaってなつかしのPHPLibのテンプレートみたいなのかな
あれには苦しめられた。

そういうpush型のテンプレートエンジンに興味があるならjavaだけどEnhydra
なんか面白いかもよ。機会があったら使ってみ。
0802nobodyさん2005/05/14(土) 04:08:42ID:???
>>799
そういうデザイナーは、よっぽどものすごいデザインでもできなければ、淘汰されるだけだと思うけどなぁ。
0803nobodyさん2005/05/14(土) 04:27:24ID:???
>>800
>799はプログラマとしてデザ寄りの考え方だから自分勝手じゃない。
自分はデザ側だから、逆に>798にも激しく同意なんですけどね
0804nobodyさん2005/05/14(土) 05:06:39ID:???
HTML_Template_Flexyだと タグの属性に flexy:if="foo" とか
flexy:foreach="foo,key,value" とか書けるけどこれはどう?
おいらは気に入ってます。

ただPEAR一家のみなさんはinclude_pathにあること前提で書かれてるから
Mojavi3と組み合わせると(回避する方法がないわけではないけど)autoload絡みでちと面倒。
0805nobodyさん2005/05/14(土) 06:11:56ID:???
>>803
ほんとに、デザイナーとして同意なのか?

俺は素人のお遊びサイト作るのに、Mojavi+Flexyで作ってるけど、以前と比べて、ずいぶん楽ちんになったぞ。
これ、プロ(金がらみ)の立場で見ると、制作にかかるコストが減るって事だろ。
そっちを優先しないで、デザイナーとかプログラマの職域がとか、言ってたんじゃ儲からんだろ。
0806nobodyさん2005/05/14(土) 09:45:30ID:???
>>797
Smartyと比べても余り変わらなくないか?
Smartyのループは{section ループの条件式}と{/section}で囲むだけ。
コメントにはならないが、普通にHTMLでは文字として表示されるだけ。
オーサリングツールだろうが問題無く開けるし、ブラウザでも問題無い。

それに、なんか話がおかしくなってないか?
ロジック云々言っていたのに、HTML_Template_Sigmaでロジックの話になってる。
結局、ロジック書くんじゃん。

最初はロジック書くのがどうたら言ってたのに・・・
0807nobodyさん2005/05/14(土) 11:59:01ID:???
>>806
797ではないし、Template_Sigmaは使った事ないんだけど、PHPLibの
テンプレートクラスと同じようなものだとしたら、テンプレートファイルには
基本的にブロックの開始/終了と変数のプレースホルダーしか書けない。

で、php側でブロックを繰り返したり、またはブロックの中身を読み込んで
適当に加工したり、あるいは完全に置き換えたりするわけ。
0808nobodyさん2005/05/14(土) 12:16:28ID:???
Smartyでも、こんな感じでHTMLのコメントで囲めば動くでしょ。

<!-- {section ループの条件式} -->
ループする内容
<!-- {/section} -->
0809nobodyさん2005/05/14(土) 12:48:10ID:???
>>808
「ループの条件式」ってところがロジックになってんだろ?
0810nobodyさん2005/05/14(土) 13:15:46ID:???
何このスレ
必死すぎてキモイ
0811nobodyさん2005/05/14(土) 13:32:06ID:???
良く分からんがSmartyより便利なものがあったら
じゃんじゃん教えてくれ
0812nobodyさん2005/05/14(土) 14:12:12ID:???
つHTML_TEMPLETE
0813 ◆AngelH/kMI 2005/05/14(土) 14:16:56ID:???
|x・)っ HTML_Template_Flexy
まあ、でもなんだかんだ言っても一番広まってるってのは強みやね。

Flexyみたいに、デフォルトをHTMLエスケープありにしてほしいところだけど・・・。
0814nobodyさん2005/05/14(土) 17:25:25ID:???
Smartyとかいう得たいの知れないモジュール使いたくないっしょ。
やっぱりPEARが一番安心。
0815nobodyさん2005/05/14(土) 20:04:33ID:???
>>808
Smartyはそれで動くんだ。Flexyではそれは動かなかった。
0816nobodyさん2005/05/14(土) 21:08:32ID:???
Flexy的には
<div flexy:foreach="array,key,value">
ループする内容
</div>
というのもありですな。
0817nobodyさん2005/05/14(土) 21:20:19ID:???
>>816
Flexyで、if 〜 else と続く場合に、うまく隠す方法はあります?
0818nobodyさん2005/05/14(土) 21:42:44ID:???
>>817
elseが入ると無理っぽい。
だから事前に
if ($foo) {
$flexy->setData('foo', true);
$flexy->setData('_foo', false);
} else {
$flexy->setData('foo', false);
$flexy->setData('_foo', true);
}
として、テンプレートでは
<div flexy:if="foo">〜</div>
<div flexy:if="_foo">〜</div>
とやってる。
elseifとか複雑な分岐があるときも似たような感じで。
0819nobodyさん2005/05/15(日) 04:10:00ID:???
ところで、ここってPHPのテンプレートエンジンを比較するスレなんですか?
0820 ◆AngelH/kMI 2005/05/15(日) 05:00:20ID:???
優劣は決められるものじゃないと思うよ。
どれも一長一短はあるんだし。
0821nobodyさん2005/05/15(日) 13:05:08ID:???
俺がSmartyを使わない理由

・独自タグによりロジックとデザインの分離ができていない。
・標準ライブラリではない。
0822nobodyさん2005/05/15(日) 18:50:44ID:???
標準ライブラリしか使わないなんて将来見えてますね
0823nobodyさん2005/05/15(日) 18:58:47ID:4RUI5R7m
テンプレートエンジンなんて
自作のシンプルのが一番使いやすいでしょ。
0824nobodyさん2005/05/15(日) 19:16:57ID:???
>>822
Smartyなんか使ってるあんたの将来は終わってますよ?
0825nobodyさん2005/05/15(日) 20:18:52ID:???
まぁ一応本家phpと同様 php.net 配布なわけだけどね。でもなぜPearに入らないんだろう?

独自タグっていうのもJSPと同じ位置づけと考えれば納得できると思う。
上で書かれているようにMVCのViewな訳だし。あれはあれで需要があるのは理解出来る。
0826nobodyさん2005/05/15(日) 21:39:42ID:???
>823
Smatyをシンプルに使えばいいんじゃないの?

でも、オレも
・拡張が容易
・キャッシュ処理
あたりが同等で使い勝手がいいのがあればそっちに移りたい。
0827nobodyさん2005/05/15(日) 22:35:38ID:???
新しいサイボウズってPHP+Smartyだっけ
0828nobodyさん2005/05/16(月) 00:05:33ID:???
yes
0829nobodyさん2005/05/17(火) 07:47:44ID:???
DBもMySQLの組み込みかなんかになるんだっけか
0830nobodyさん2005/05/21(土) 17:12:14ID:???
Smarty使う奴は例外なく雑魚
0831nobodyさん2005/05/21(土) 20:23:48ID:???
雑魚に雑魚とか言われてもなぁ(藁
0832nobodyさん2005/05/21(土) 21:57:23ID:???
Smarty遅くね?
速度が何か気になるんだよなァ
0833nobodyさん2005/05/21(土) 22:11:55ID:???
ウチはそういう時はキャッシュをメモリディスクに入れてる。
まぁ、ホントに smarty が悪いのか調べるのが先だろうけど。
0834nobodyさん2005/05/22(日) 01:29:43ID:???
>>831
その程度の反論しかできないんだからよほどの雑魚なんだな。
やっぱりSmarty使う奴は例外なく雑魚
0835nobodyさん2005/05/22(日) 01:45:00ID:???
>>834
なぜSmartyを使う奴が例外なく雑魚なのかを理論的に説明するのが先。

これが説明できない限り、>>834が自分自身で言っている『その程度の反論』になる。
つまり、>>834が雑魚となることを自分自身で宣言した。

という訳で、説明くださいw
0836nobodyさん2005/05/22(日) 03:15:55ID:???
>>835
デザインとロジックの分離ということについて
もう少ししっかりと考えてみたら?
そうすればSmartyが屑中の屑であることが
よく理解できると思うよ?
もし理解できないのであればお前のプログラミングセンスが
無いんだろうね。OK?
0837nobodyさん2005/05/22(日) 03:24:17ID:???
↑何か思いこみハゲス
0838nobodyさん2005/05/22(日) 03:26:30ID:???
>>836
相手に答えを求めるような方法は理論的とは言えない。

デザインとロジックの分離ということについて
もう少ししっかりと考えてみたら?
そうすればSmartyを使わない奴が屑中の屑であることが
よく理解できると思うよ?
もし理解できないのであればお前のプログラミングセンスが
無いんだろうね。OK?

と返されたらどうするの?

なぜ、Smartyを使うとデザインとロジックの分離が出来ないかを具体的に説明できないのなら、
お前さんの理論に現実味が無い事になる。

それとも、Smartyの知識が無い事を知られるのが怖いのか?
大抵の奴はSmartyについてちゃんと調べたりしてないで語ってる奴が多い。

例えば、>>788のような意見。
ロジックは記述できるが、記述しなければいいだけ。
つまり使う人間次第でロジックとデザインは分離できる。

>テンプレートってのは純粋なHTMLであるべきで、テンプレートをブラウザで
>見たらどのような物か分かるべきで、オーサリングツールで何の問題もなく
>開くことができるべき。

この意見だって、Smartyを知らないからこそ出てくるもの。
純粋にHTMLにしたければ、HTMLのコメント形式に出来る事がマニュアルに明記されている。
マニュアルから引用すれば、
$smarty->left_delimiter = '<!--{';
$smarty->right_delimiter = '}-->';
というようにしっかりと記述されている。
0839nobodyさん2005/05/22(日) 03:47:33ID:???
Smarty重いから、Smartyより軽くて、Smartyより柔軟で、Smarty高機能なテンプレートエンジンがあったら
別に未練もないし、すぐ乗り換えるんだけど。

教えてくれよ>>834
0840nobodyさん2005/05/22(日) 03:51:12ID:???
多分、>>836はSmartyのHTML用構文が覚えられなくて干されたデザイナー。
0841nobodyさん2005/05/22(日) 06:41:17ID:???
ってゆーか、せっかくSmarty導入したのに・・・
 php側でテンプレート変数にhtml流し込むのヤメレ!そこのプログラマーさん!
 tplの中のforeach文壊すのヤメレ!ちっとはマニュアル読め!そこのデザイナーさん!
ってことにはなりやすい
もっとシステムをガチガチにすりゃいいという考え方がないわけでもないけど
やっぱりこれは別にSmartyのせいじゃなくて使ってる側の使い方の問題
0842nobodyさん2005/05/22(日) 18:31:08ID:???
MVC実践しようとなると速度が犠牲になるのは仕方がないよ
0843nobodyさん2005/05/22(日) 21:51:49ID:???
>>842
なんでSmartyが遅いというのをMVCモデルのせいにしてるわけ?
0844nobodyさん2005/05/23(月) 00:38:50ID:???
Smartyにオーバヘッドがあるのは確かだから必要ない案件
では使わなければいいだけ。

みんな必要だから使ってるんだが、それがわからない人がいる。
0845nobodyさん2005/05/23(月) 03:35:36ID:???
>>838
>例えば、>>788のような意見。
>ロジックは記述できるが、記述しなければいいだけ。
>つまり使う人間次第でロジックとデザインは分離できる。

はぁ・・・。想定の範囲内のウンコみたいなレスご苦労様です。
Smartyでそのような記述ができることは知ってるんだが。
でもSmarty使ってる奴でそんな使い方してる奴いるか?(いないね)
そもそもそのような(テンプレートにロジックを記述しない)使い方
をするならSmartyなんか使うわけが無い。
だからSmartyを使う奴はロジックとデザインの分離というものが
分かってない屑であるとはっきり言えるのよ。OK?
0846nobodyさん2005/05/23(月) 04:23:22ID:???
>>845
PHPはhtmlとPHPコードを混在した使い方ができるし、事実そのように使われている。
よってPHPを使うやつはロジックとデザインが分離できない。

みたいな論法かな。
0847nobodyさん2005/05/23(月) 09:22:25ID:???
ぶっちゃけ、Smartyつかうとロジックとデザインの分離が出来ないといってるけど、
じゃあ、何を使うと分離できるのかが知りたいよな。

それに、
>Smartyでそのような記述ができることは知ってるんだが。
>でもSmarty使ってる奴でそんな使い方してる奴いるか?(いないね)
自分でも言ってるけど、使う側の人間の問題じゃないのかな?
つまり、そういった記述すれば分離できる。

だけどさ、テンプレートにロジックを記述しない場合、
多少なりとも、ロジックの中にデザインが入るんだよな。
テンプレートだけに注目してるみたいだけど、この変どう考えてるんだろう・・・
0848nobodyさん2005/05/23(月) 10:04:32ID:???
オイラにはビジネス・ロジック(M)とプレゼンテーション・ロジック(V)を区別できていない、
或いは意図的に区別していないように見える。
0849nobodyさん2005/05/23(月) 10:20:42ID:???
>>848
あ、俺も思った。
0850nobodyさん2005/05/23(月) 11:11:06ID:???
そもそも845の言ってることにはプレゼンテーションロジックという概念がない
ロジックとデザインって言ってるだけで、何がなんだかわかってないのではないか?
■ このスレッドは過去ログ倉庫に格納されています