トップページ⇒php
981コメント365KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/03/29(月) 14:41:04ID:???
Smarty は PHP のためのテンプレートエンジンです。
具体的に言うと、php のプレゼンテーションからアプリケーションのロジックとコンテンツを分離して管理する事を容易にします。
これは、プログラマーとテンプレートデザイナーの役割が異なり、
これらの役割を違う人間が受け持っている場合に最適だと言えます。
0412nobodyさん2010/06/10(木) 02:21:15ID:???
>>411
テンプレートをClientとした場合、Smartyが構文差を埋めるAdapterになるよね。
って話なのに、普通はAdapterとして使わないとか言われても・・・

仮にClient=フレームワーク、Adaptee=Smartyとしても>>405のパターンは適用される。
もう少し理解力と応用力を身につけような?
君の基準では普通なのかもしれないが、普通の考え方しか出来ない様では一生低級PGのままだよ。
0413nobodyさん2010/06/10(木) 03:10:06ID:???
A君「Client=1、Adapter=2とした場合、Client + Adapter = 3 だよ」
B君「Client=3、Adapter=4とした場合、Client + Adapter = 7 だな」
>>411君「普通Adapterは0だよね?能無し低級PG共めw」
A君・B君( ・・・なにこいつ(´Д`; )
0414nobodyさん2010/06/10(木) 09:42:42ID:???
一人で何やってんの・・?
自演するにしても文章の癖くらい消せよ・・
0415nobodyさん2010/06/10(木) 09:59:28ID:???
いい加減いつまでやってるんだ?
フレームワークやデザパタの話なんて興味ないんだよ。
0416nobodyさん2010/06/10(木) 10:54:07ID:???
隔離スレだった頃も、わざわざSmartyスレに来てSmarty批判ばっかり繰り返してたヤツもいたしな
自分の意見を通さないと気が済まないんだろうけど、そういうのは他でやってくれよな

ここはSmartyスレだからさ
0417EM111-188-76-222.pool.e-mobile.ne.jp2010/06/11(金) 10:38:46ID:???
池沼はコテハン付けてID表示して書き込めっての
NG登録できないだろ
0418nobodyさん2010/06/11(金) 13:38:47ID:???
池沼相手にそんなこと言ってもな
0419nobodyさん2010/06/12(土) 01:24:52ID:???
で、Smartyの優位性って結局なんなの?
0420nobodyさん2010/06/12(土) 02:30:25ID:???
>>419
用途次第で優位にも不利にもなる
解らないなら無理に使う必要は無い。
0421nobodyさん2010/06/12(土) 09:11:15ID:???
そんなことよりSmartyをアダプタとか言ってる時点でアレだよな。
>>405とかすげートンチンカンで笑える。
0422nobodyさん2010/06/12(土) 09:25:57ID:???
>>419
PHPにおいてテンプレートエンジンの優位性はほとんどない。
速度を犠牲にしてまで使う代物ではないと断言できる。
0423nobodyさん2010/06/12(土) 12:25:49ID:???
すべての場面に置いて使うべきでない限り使う道はあるからな
0424nobodyさん2010/06/12(土) 17:58:52ID:???
使い道が無いんじゃなくて使いこなせていないだけの間違いだろう。
未だに速度が云々言ってる奴は、ベンチマークすら取ったことの無い情弱。
0425nobodyさん2010/06/12(土) 21:10:05ID:???
Smarty使いはすぐキレる。
ゆとりかよw
0426nobodyさん2010/06/12(土) 21:16:51ID:???
Smartyはそれ自体がアダプタです(キリッ
Smartyはそれ自体がアダプタです(キリッ
Smartyはそれ自体がアダプタです(キリッ
Smartyはそれ自体がアダプタです(キリッ
Smartyはそれ自体がアダプタです(キリッ
0427nobodyさん2010/06/12(土) 21:38:53ID:???
>>421
>>405 の意味が理解出来ないのは自分が低級PGだと露見させているようなもの・・・ハズカチィ///
0428nobodyさん2010/06/12(土) 22:41:37ID:???
>>405
理解してるよ。
「Smartyはそれ自体がアダプタです(キリッ」ってことだろ?
デザインパターンなんて理解出来ない低級PGなんだなーと思った。
0429nobodyさん2010/06/12(土) 22:47:45ID:???
「smarty アダプタ」で検索したらこのスレしか出ねーw
>>405は自分がポンコツ低級PGであることを理解し、
泣きながら一生このスレで謝り続けるべき。
0430nobodyさん2010/06/12(土) 23:56:53ID:???
>>405 を 「Smartyはそれ自体がアダプタです」と読み取ったのであれば、もう少し日本語の勉強をした方が良い
正しくは「Smartyはそれ自体がアダプタにもなりえる」だ。

あと、検索するなら「Smarty Adapter」「Smarty Adaptor」が適切だよ
そもそも議題の趣旨を調べたいなら「Smarty フレームワーク」とかでね

調べ方すら知らない低級PGは2chスレ見てる場合ではないです(^o^
0431nobodyさん2010/06/13(日) 00:36:06ID:???
出ました、Smarty=フレームワーク発言。
フレームワークの意味分かってないだろ?
Smartyはライブラリであって呼び出される側。
OKかな?低級PG!
0432nobodyさん2010/06/13(日) 00:36:56ID:???
「Smarty フレームワーク」とかでね
「Smarty フレームワーク」とかでね
「Smarty フレームワーク」とかでね
「Smarty フレームワーク」とかでね
「Smarty フレームワーク」とかでね
0433nobodyさん2010/06/13(日) 00:37:50ID:???
Smartyはそれ自体がアダプタにもなりえる
Smartyはそれ自体がアダプタにもなりえる
Smartyはそれ自体がアダプタにもなりえる
Smartyはそれ自体がアダプタにもなりえる
Smartyはそれ自体がアダプタにもなりえる
0434nobodyさん2010/06/13(日) 00:38:47ID:???
痛い発言の総合商社だなw
0435nobodyさん2010/06/13(日) 00:52:30ID:???
何でSmarty厨って厚顔無恥なんだろう。
Smartyがアダプタ?フレームワーク?
死ねよ雑魚。
0436nobodyさん2010/06/13(日) 01:00:37ID:???
言い返せないからってムキになってファビョルなよ・・・顔真っ赤だよ?

>出ました、Smarty=フレームワーク発言。
そのイコールはどこから出てきたんだい。まずは日本語から勉強しような?

Smartyをフレームワークで使うメリットっとは?て話からアダプタって話に派生してるんだ、
関連記事調べるなら「Smarty フレームワーク」で検索しろってことだ・・・アホに合わせてレスするのは大変だね。
0437nobodyさん2010/06/13(日) 01:08:13ID:???
>>435
お前上の方でデザイナにテンプレートはさわらせないとか騒いでた奴だろw
統合失調症か?一度精神科医に行った方がいいよ。
0438nobodyさん2010/06/13(日) 01:38:38ID:???
>>436
「Smarty フレームワーク」とかでね
「Smarty フレームワーク」とかでね
「Smarty フレームワーク」とかでね
「Smarty フレームワーク」とかでね
「Smarty フレームワーク」とかでね
0439nobodyさん2010/06/13(日) 01:40:24ID:???
Smartyがフレームワークとは知らなかったよ。
ただのテンプレートエンジンだと思ってた。
凄いなぁSmarty馬鹿ってwww
0440nobodyさん2010/06/13(日) 01:41:48ID:???
Smartyはフレームワーク
そして何よりアダプター
これ、Smarty界隈の常識ですよ?
0441nobodyさん2010/06/13(日) 01:42:51ID:???
Smartyはフレームワークでありアダプターです。
0442nobodyさん2010/06/13(日) 01:56:29ID:???
Smartyとフレームワークの関係を調べる場合は、とりあえず「Smarty フレームワーク」で検索しないか?
そうでないと>>429で「Smarty アダプタ」を検索した意図がわからんのだが、

検索エンジンすらまともに使えない池沼って事でOK?
0443nobodyさん2010/06/13(日) 05:44:59ID:???
自分以外全員迷子に見える人につける薬はないのか
0444nobodyさん2010/06/13(日) 10:59:40ID:???
ちょっと前まではまだ会話は成立していたような気がしたんだが
>>432-433みたいになっちゃったらもう病院行ってもらうしか…
0445nobodyさん2010/06/13(日) 15:48:27ID:???
Smartyはフレームワークでありアダプターにもなる。
これって素晴らしくね?
0446nobodyさん2010/06/13(日) 18:55:00ID:???
軽く煽るつもりが反論出来なくなって荒らしになる典型的パターンだな
0447nobodyさん2010/06/13(日) 19:38:40ID:???
>>445
次スレの>>1にも書いておこうぜwww
0448nobodyさん2010/06/13(日) 21:10:04ID:???
次スレは池沼出入り禁止だからそれは無理だお(^ω^)
0449nobodyさん2010/06/13(日) 21:55:44ID:???
次スレのタイトルは
【フレームワークであり】Smartyスレ第3章【アダプターにもなる】
で決まりだな。
0450nobodyさん2010/06/14(月) 01:43:33ID:???
そんなことより >>449 にオススメのソフトがあるから是非活用してくれ
http://yuukiremix.s33.xrea.com/chirashi/
0451nobodyさん2010/06/14(月) 03:45:18ID:???
保存できないとかチラシの裏以下じゃね?
0452nobodyさん2010/06/14(月) 03:54:45ID:???
チラシの裏以上に使い道のない発言など保存する必要無いって事だろう
0453nobodyさん2010/06/14(月) 03:55:34ID:???
まあ、そうだなw
0454nobodyさん2010/06/14(月) 13:09:14ID:???
自演するならもうちょっと投稿時間考えてくれ
連投制限ちょうどの40秒間隔で罵りあいとか、もう見てて憐れで
0455nobodyさん2010/06/14(月) 17:03:38ID:???
また妄想で都合の悪いレスは受け流す・・・すか・・・
まじで病院行った方がいいよ。池沼。
0456nobodyさん2010/06/15(火) 13:07:55ID:???
うん。都合の悪いレスは受け流しちゃうんだ
だって都合の悪いレスに真っ向からぶつかっても、得るものないんだもの
0457nobodyさん2010/06/15(火) 16:18:23ID:???
久しぶりにここ見たけど、まだやってたw
この辺境の地ですげえな。
0458nobodyさん2010/06/15(火) 17:48:22ID:???
むしろこのスレで得るものあったのか?w
0459nobodyさん2010/06/15(火) 17:54:53ID:???
昔、よく質問に答えてもらって助かりましたので。
やっと使いこなす側になれたので、初心者がきたら(分かる所は)教えてあげられるかなと思って常駐してます。
0460nobodyさん2010/06/15(火) 18:34:46ID:???
ん?上の方で揉めてた人とは別人かい?
0461nobodyさん2010/06/16(水) 09:03:32ID:???
メンドクセーの相手にしないでよ。
持論を展開したいなら、自分のblogなりでやれば良いのに、相手にするからやり込めたくなったり、議論の為の議論にしちゃうんだからさ。
0462nobodyさん2010/06/16(水) 17:42:13ID:???
そうだな、じゃあSmarty3 RC2 の話でもするか。

各プロパティやメソッドが camelCaseや setter / getter になったのは嬉しいね。
0463nobodyさん2010/06/16(水) 18:13:58ID:???
今から勉強するならSmarty2系よりもSmarty3がいいですか?
0464nobodyさん2010/06/16(水) 18:15:32ID:???
勉強したいなら3でいいんじゃない?
業務で使うなら2のほうが枯れてて良いと思うけど
0465nobodyさん2010/06/16(水) 18:26:30ID:???
>>463
ありがとうございます
Smarty3はRCとのことですが、業務で使われるようになるのはいつごろになると思われますか?
0466nobodyさん2010/06/16(水) 18:28:46ID:???
ごめんなさい、>>465のアンカーは>>464です
0467nobodyさん2010/06/16(水) 20:34:41ID:???
>>465
Smarty2使ってる人はある程度自作プラグイン活用してるだろうし、乗り換えまでは少し時間かかるかもね。

全く初めてなら、ドキュメントやサンプルの揃ってる2から勉強するのもありかと。
0468nobodyさん2010/06/17(木) 06:07:27ID:???
ありがとうございます、2から触ってみます
0469nobodyさん2010/06/17(木) 17:53:52ID:???
3にする利点て何でしょう??
0470nobodyさん2010/06/18(金) 01:47:44ID:???
>>469
全てPHP5で書き直されて、軽量化と大幅な機能追加が行われた。

詳しくはREADME読むといいよ。
http://smarty-php.googlecode.com/svn/branches/Smarty3Dev/distribution/README

完全に書き直しただけあって現状では不具合も未知数なので、
暫くは様子見が吉だと思う。
0471nobodyさん2010/06/18(金) 17:31:08ID:???
>>470
ありがとう。PHP5のみか。
基本問題ないけど、たまーに今更PHP4とか言ってる案件あんだよね。
upgrade.php使ったりして少しは差異吸収させるけど。

ぐぐったついで。

Smarty2.0からSmarty3.0への変更点 | スイナシア
ttp://suin.asia/2010/03/06/smarty_3.0
0472nobodyさん2010/06/22(火) 11:28:33ID:???
Smarty3はphp5.3に完全対応してますか?
0473nobodyさん2010/06/22(火) 19:09:39ID:???
していますん
0474nobodyさん2010/06/28(月) 01:57:03ID:???
Smartyなんて使ってる奴まだいたんだな。
0475nobodyさん2010/06/28(月) 10:13:15ID:???
COBOLやBASICすら現役なのに、プログラマの台詞とは思えないですぞw
0476nobodyさん2010/06/28(月) 17:12:46ID:???
釣られるなよ
0477nobodyさん2010/06/29(火) 01:16:19ID:???
本当のプロはSmartyなんて使わない。
まぁ趣味でやる分にはいいんじゃない?
0478nobodyさん2010/06/29(火) 09:00:08ID:???
本当のプロは依頼主の要望に合わせる
まぁ趣味でやる分には何を嫌おうがいいじゃない?
0479nobodyさん2010/06/29(火) 17:24:50ID:???
ブラウザ三国志はSmarty
http://www.slideshare.net/ketaiorg/php-4638298
0480nobodyさん2010/06/29(火) 22:55:29ID:???
Smartyは激重だから使わない方がいい
0481nobodyさん2010/06/30(水) 12:00:10ID:???
比べればわかるSmartyは超高速。

for ($i=1 ; $i<100000000;$i++ ) {
$smarty->display('hello world.tpl');
}

for ($i=1;$i<1000000000;$i++) {
echo 'hello world';
}
0482nobodyさん2010/06/30(水) 12:31:45ID:???
そのふたつって同じ結果になる処理なのか?
0483nobodyさん2010/06/30(水) 15:44:41ID:???
Smartyが激重とか言ってる奴は、5年くらい前から知識とハードウェア構成が止まってるんだろうよw
0484nobodyさん2010/06/30(水) 18:44:24ID:???
ttp://www.slideshare.net/ketaiorg/php-4638298
Mixiブラウザ三国志の実装
・Smartyを使用してる
・Smartyは重いと言われてたけど、テストしたら別に重くなかったから採用した
とブラウザ三国志の作者が言及
0485nobodyさん2010/07/01(木) 20:16:33ID:???
お前ら、ちょっと相談ですけど、
CMSサイトをSmartyで作るとして、管理画面はSmarty使わずに
公開画面はSmartyを使ってるんですが、変ですかね?
管理画面は編集する必要ないと思っているので、使ってないのですが。
0486nobodyさん2010/07/01(木) 22:18:04ID:???
変じゃないけど、テンプレートを共有出来た方が楽な気はしないでも無い。
0487nobodyさん2010/07/02(金) 00:12:55ID:???
DreamweaverでSmartyの編集している人いる?
includeを反映させる方法「Dreamweaver Smarty でググると出てくる方法」
で反映させる事は出来たんだけど、デリミタタグを{{ }}に変更したら出来ない。
やり方知ってる人がいたら教えて下さい。
0488nobodyさん2010/07/02(金) 01:50:44ID:???
>>487
ぐぐって見たけど、複数のエクステンションがあるっぽいね。
どの方法でやってるか書かないと誰も答えられないと思うよ。
0489nobodyさん2010/07/02(金) 12:28:04ID:???
>>488
そんなに複数のエクステンションはないと思いますよ。
自分が試したのは「Dreamweaver Smarty」でググって一番上の方法と、
そのエクステンションの/transrator/SmartyInclude.htm(タグ置換ファイル)
の編集ですね。デリミタタグを{ }から{{ }}に変えるという。
0490nobodyさん2010/07/03(土) 12:42:11ID:???
なんでそんなぼかした言い方するんだ
0491nobodyさん2010/07/03(土) 16:26:42ID:???
どの方法で、どこで躓いているのかが解らないので答えようが無い
0492nobodyさん2010/07/03(土) 16:47:53ID:???
自作のMVCフレームワーク作ってるんだけど、
VをSmarty使うかどうか悩む。

Smartyにはエスケープとか日付フォーマットの変更とか使えるから、
Viewで表示を変える事は出来る。
でも、アクセス毎にコンパイルファイルが生成されるのが気になる。
サイト構造のディレクトリ分けの時とかさ。

意外とPHPフレームワークでSmarty使ってるって少ないんだよね。
Ethnaぐらいか?
0493nobodyさん2010/07/03(土) 19:52:53ID:???
>>492
コンパイルは最初の1回だけでは?毎回ソースをparseするよりは早くなるんだししょうがないっしょ。
あとはキャッシュ使うなりの運用じゃね?
0494nobodyさん2010/07/04(日) 00:41:54ID:???
Smartyって大抵のレンタルサーバーだと元から入ってるもんなの?
0495nobodyさん2010/07/04(日) 01:17:12ID:???
>>493
そうじゃなくて、templates_cとかcacheとかの置き場所に困るんだよ。
サイト構造的に、場面展開する時とかね。

あと、単純にコントローラーにSmarty変数を書いていくと
コントローラーが肥大化してしまうと言う悩みもある。
テンプレートファイルにPHP直書きだとそうでもないからね。
0496nobodyさん2010/07/04(日) 02:26:33ID:???
>>495
置き場所に困る意味がわからないのだが・・・適当な場所にディレクトリ作るだけじゃないの?

あとControllerにSmarty変数を書いてしまって肥大化ってのは、assignが面倒って事?
0497nobodyさん2010/07/04(日) 12:47:58ID:???
適当な場所に作るんだけど、
サイトが大きくなるとその管理・分け方が難しく感じる時があるんだよ。

あと、assignが面倒ってのは大きいね。
モデルからコントローラーに何らかの処理が渡って、
その結果をビュー(テンプレート)に渡すのが流れだけど、
ビュー内のSmarty変数に対してすべてassingするのが面倒。

もちろん、配列でassignして、テンプレでは
{$data.name}みたいな書き方も出来るけど。
0498nobodyさん2010/07/04(日) 18:13:08ID:???
>適当な場所に作るんだけど、
>サイトが大きくなるとその管理・分け方が難しく感じる時があるんだよ。

参考までに現在のプロジェクトディレクトリの構成教えてくれない?
俺はプロジェクリディレクトリ以下に templates/  templates_c/ chache/ を作ってる。

>あと、assignが面倒ってのは大きいね。
>モデルからコントローラーに何らかの処理が渡って、
>その結果をビュー(テンプレート)に渡すのが流れだけど、
>ビュー内のSmarty変数に対してすべてassingするのが面倒。

コントローラからビューに結果を渡す必要があるのだから、Smartyに限らずassignは発生すると思うよ
もし面倒ならコントローラに定義された変数を、自動で全てassignする機能を持たせればよいかと
その場合、コントローラ側で変数名変えたり、増やしたり、振る舞いを変えたりするとテンプレートにまで影響が出る可能性があるので注意だけど

自分用フレームワークなら、自分が使いやすい方で作るのが良いかと思う。
0499nobodyさん2010/07/04(日) 20:22:11ID:???
>>498
単純に「公開用」「会員用」「管理者用」の画面があった場合、
/templates_c
/html、/member、/admin(長くなるから横書きにした)

みたいな感じにするか
/admin
/templates
/templates_c
/cache

とするかそれぞれの好みに寄るだろうけど、
サーバにアップする時、ディレクトリ作ってパーミッションを777にして
とかいう作業が少し面倒に感じてね。

>自分用フレームワークなら、自分が使いやすい方で作るのが良いかと思う。
自分用フレームワークを他人が見ても分かる形にしたいからさ。

その時に、テンプレファイルで{$name}とするのと、<?php echo $name;?>
とするのと、一緒だと思って。
どこかで「ビューで表示を変える」というのを見たから
Smartyを使おうと思ったんだけどね。いまいち、使い方で悩むわけよ。
0500nobodyさん2010/07/04(日) 22:39:56ID:???
>>499
自分だったら
/templates/public/
/templates/member/
/templates/admin/
/templates_c/
/cache/
かな・・・ここらへんはプロジェクトディレクトリの構成によるから、
他のフレームワークを参考に決めればいいと思う。

>>自分用フレームワークを他人が見ても分かる形にしたいからさ。
で、あればView用Interfaceを作っておいて、
好きなテンプレートエンジンを組み込めるようにしておけばいいと思うよ。


実際に他のフレームワークとかビュークラスを触ってみれば良いよ
0501nobodyさん2010/07/05(月) 01:41:29ID:???
View用Interfaceを作ると結局、Smartyを使った方が良いよね
ってなるからな。

Viewとなるテンプレファイルはコントローラーで指定したいから
Interface作ると柔軟性に欠けるんだよな。俺の経験では。

フレームワークはEthnaとZendとCakeを少しかじっただけだから
まだ利点が理解できてないかも知れないけど。
ま、Smartyスレで「フレームワークのビューにSmarty使うってどうよ?」
って問いかける事自体おかしいのかもしれないがw
0502nobodyさん2010/07/05(月) 02:57:05ID:???
>>501
普通はフレームワークに柔軟性と自由度を与える為にInterface化するんだけど・・・Interface自体を思い違いしてない?
もしくはViewじゃなくてSmartyに依存しすぎたInterface設計をしてないかい?
0503nobodyさん2010/07/05(月) 04:43:21ID:???
横だけど、それぞれのモジュールの関連の深さによって、templates/templates_c分けた方が良いと思うな。
ディレクトリごと別のプロジェクトに移しても動くように。
ある意味、オブジェクト思考的なカプセル化というか、粗結合というか。
0504nobodyさん2010/07/05(月) 10:22:53ID:???
>>502
Interfaceを小一時間ほど勉強したけど、完全に勘違いしてた・・・
ただ、あまり利点(使い方)が思い浮かばない。

>で、あればView用Interfaceを作っておいて、
>好きなテンプレートエンジンを組み込めるようにしておけばいいと思うよ。

と言うのが想像出来ん。もう少し勉強してみるよ。
0505nobodyさん2010/07/07(水) 01:22:28ID:???
PHP5時代の今、まだSmartyなんか使ってるのがいたとはな
驚愕の事実だぜ。
0506nobodyさん2010/07/07(水) 02:25:23ID:???
そもそもテンプレートにPHPのコード書けば終いだもんな
キャッシュもob_get_contents使って自作すればいいし。
0507nobodyさん2010/07/07(水) 04:28:11ID:???
>キャッシュもob_get_contents使って自作すればいいし。
この一行で頭の悪さが露呈しているなw
0508nobodyさん2010/07/07(水) 10:20:55ID:???
いまだにPHP4.4.0なんだが
0509nobodyさん2010/07/07(水) 13:11:32ID:???
smartyのページキャッシュを使いたがらない人がいるんだけど、なんで?
PEARのキャッシュを使いたがるんだ。
0510nobodyさん2010/07/07(水) 13:13:49ID:???
いや、オレはSmartyのキャッシュ使ってるよ、超便利じゃん
PEARのキャッシュ使う人はSmarty使うページと使わないページがあって、それを統一したいとかじゃね?
0511nobodyさん2010/07/07(水) 13:43:12ID:???
>>507
Smarty自体がob_get_contents使ってるんだが。
■ このスレッドは過去ログ倉庫に格納されています