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

私的良スレ書庫

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

元スレ【PHP】 Smarty 隔離スレ 【テンプレート】

php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - string_format + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
451 : nobodyさん - 2009/05/14(木) 03:40:17 ID:??? (+27,+30,+0)
452 : 446 - 2009/05/14(木) 14:32:58 ID:??? (+38,+30,-143)
>>447
ああすまない、ロジックとビューを分ける際にって所を聞きたかったので
その他の所は適当に書いてしまった。
テンプレートエンジンってのはそういう所も自動でやってくれるの?


>>450
とても納得できたよありがとう。
これもケースバイケースだろうけど、PHPerって実務に携わる場合って
Smarty必須だったり「おっ、いいね!」的なアドバンテージになったりするのだろうか。。
個人的な見解で良いので、聞かせてくれると有り難い。
453 : nobodyさん - 2009/05/14(木) 14:45:29 ID:??? (-19,-27,-58)
Smartyならデフォルトで適用するフィルターを設置出来る
escapeを入れたら今回記述されたテンプレートでもちょっと安心

とりあえず、OpenPNEはやってた
興味があればソース眺めると良いかと
454 : nobodyさん - 2009/05/14(木) 17:49:28 ID:A4v4Hdy/ (+22,+29,-40)
>>453
質問なんですけど、ソース見て、それがsmarty経由でつくられてるものだって、
どこでわかるんですか?

見れるんなら見たいんですけど。
455 : nobodyさん - 2009/05/14(木) 18:51:12 ID:??? (-25,-23,-12)
HTMLソースじゃないぞ
456 : nobodyさん - 2009/05/14(木) 20:10:22 ID:??? (+24,+29,-63)
>455
smartyでいうところのコンパイルされていないファイルって、見れるんですか?
だとしたら他人事ではないんですけど。
457 : nobodyさん - 2009/05/14(木) 21:02:38 ID:??? (-26,-29,-41)
> それがsmarty経由でつくられてるもの

> それ
ってOpenPNEをさしてるの?OpenPNEはソースが配布されているけど
458 : nobodyさん - 2009/05/14(木) 21:26:13 ID:??? (+24,+29,-38)
>457
あ、そういうことでしたか。
そして、ダウンロードもしてみました。
他の人がつくったsmartyのテンプレートファイル初めてみた。
勉強になるな~
459 : nobodyさん - 2009/05/14(木) 21:49:19 ID:??? (+22,+29,-4)
どんな風に勉強になった?
461 : nobodyさん - 2009/05/16(土) 17:50:14 ID:??? (+26,+28,-28)
MTもSmarty使っているから、参考になると思うよ。

ただ、OpenPNEの方がわかりやすいね。
なんか日本人的な書き方のような気がする
462 : nobodyさん - 2009/05/22(金) 09:35:19 ID:??? (+52,+29,-128)
Smartyの順序って
「PHPが苦手だからSmartyを使おう」
それとも
「PHPができるからSmartyでさらに上を目指そう」
のどっちなんですか?

わかる人からするとアホな質問かもしれませんが、
PHP初心者の自分には、どうしてもSmartyの役割がはっきりしなくて。
463 : nobodyさん - 2009/05/22(金) 10:07:23 ID:??? (-22,-26,-47)
SmartyはPHPの単なるライブラリだよ・・・?
464 : nobodyさん - 2009/05/22(金) 10:22:59 ID:??? (+27,+29,-35)
Smartyの用途はスレの上のほうで話題になってるじゃん
苦手だからとか上を目指そうとかそういう観点ではなく
465 : 462 - 2009/05/22(金) 11:11:41 ID:??? (+29,+30,-151)
>463,464
ご返答ありがとうございます。

スレも1から全部読みました。
そして、ここ数日ネットで調べまくったんですが、
どこも書いてあることは「デザインとプログラムを分離できるもの」ということで、
頭が悪すぎるのか、結局「smartyが何をしている」というのがわからずじまいでした。
そこで、書き込んでみたのです。

要は「工具セット」ってことですかね。
上の方で延々と行われた議論は
「使う工具(smartyの機能)なんか自分で作ればいい」派と
「始めからセット(smarty)であるんだから簡単で便利」派の言い争いって感じですか。
466 : nobodyさん - 2009/05/22(金) 11:43:37 ID:??? (-21,-23,-42)
smarty使ってMVCのviewを強化したい派(利便性高・コスト高)と
php自体にview的な要素が入ってるんだから重複は無駄だよ派(利便性中・コスト中)って感じでないかな
467 : 462 - 2009/05/22(金) 17:49:33 ID:??? (+23,+28,-8)
>>466

!('A')あ~
なんか少々モヤモヤが晴れてきました。
引き続き勉強します。
468 : nobodyさん - 2009/05/23(土) 20:37:34 ID:??? (-17,-30,+0)
Smartyを勉強し始めたのですが、
phpコードに書いた和文が文字化けしてしまいます。
テンプレートの和文は文字化けしません。

phpで$smarty->assign('name', 'みなさん');として
tplに「こんにちは、{$name}!」とすると、
htmlで「こんにちは、文字化け!」とでてしまうのです。

全部UTF-8で書いています。
サーバーはsixcoreをかりており、mbstringの設定はこうしています。
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = UTF-8
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,EUC-JP,SJIS,JIS,ASCII
mbstring.substitute_character = none;

今日一日中ググりまくっているんですが、どうしてもわかりません。
どなたかお助けください。おねがいします。
470 : nobodyさん - 2009/05/23(土) 21:22:40 ID:??? (+27,+29,-16)
「こんにちは、文字化け!」
はワラタ
471 : nobodyさん - 2009/05/23(土) 21:30:08 ID:??? (-27,-30,-77)
smartyのテンプレートに$hogeという配列が空じゃない場合の条件分岐処理を書きたいんですけど、
この書き方はおかしいのでしょうか

{if $hoge!==""}text{/if}

たまにif文が動かないのでおかしいと思うのですが
474 : nobodyさん - 2009/05/25(月) 00:05:06 ID:??? (+2,+9,+0)
>>472
>>473

どちらも動作しました
ありがとうございます
475 : nobodyさん - 2009/06/30(火) 18:33:31 ID:Cv5BCTzF (+39,+29,-82)
既存のソースをフレームワークを使って書き直したいんだけど、smartyは他のフレームワークと比べて
何か利点はありますか?それとも他のフレームワークを使った方がよいですか?

フレームワークを使い比べたことがある方、教えてください。
476 : nobodyさん - 2009/06/30(火) 21:29:17 ID:??? (-17,-29,-117)
フレームワークはMVC+αを担当するものとした場合、
SmartyはVのみを担当するテンプレートエンジンでしかない。

・既存のソース+Smarty
・他のフレームワーク+Smarty

という使い方が一般的です。
477 : 475 - 2009/07/01(水) 02:15:48 ID:FWyhhBD1 (+21,+29,-3)
>>476

簡単ながら簡潔な意見だと思います。ありがとうございます。
478 : nobodyさん - 2009/07/01(水) 18:56:06 ID:??? (+22,+29,-1)
どういたまして。
479 : nobodyさん - 2009/07/06(月) 17:48:50 ID:??? (+32,+29,-60)
Smartyも大きく言えば、関数ライブラリだからな。
HTML内にPHPコードを書いているのと変わらない。
(しかも、それを実現する為に複雑な処理をしているのでパフォが落ちる

でも、プログラマー以外がテンプレートを操作する環境なら凄い便利
480 : nobodyさん - 2009/07/06(月) 17:53:06 ID:??? (+22,+29,-2)
小さく言うと何?
483 : nobodyさん - 2009/07/07(火) 04:18:14 ID:??? (+38,+29,-166)
>HTML内にPHPコードを書いているのと変わらない。

PHPコードを書かせない(制限する)為に、Smartyがあるわけだが。

>(しかも、それを実現する為に複雑な処理をしているのでパフォが落ちる

内部的にPHPに変換及びキャッシュを行うから、きっちり設定をすればパフォ的には気にとめる程じゃ無くね?
システム規模によるだろうけど、大抵は処理全体の1割未満のリソースしか食わんよ。

上手に導入出来れば開発が相当楽になるので、結果的にコストパフォーマンスは上がるしさ。


一度Smartyの設計思想を読む事をおすすめ。
484 : nobodyさん - 2009/07/07(火) 16:14:30 ID:??? (+38,+30,-76)
>>483
いやいや。そう言うことを言いたいんじゃないよ。
Smartyを覚えるならPHPも覚えなければいけないわけで、
フレームワークに使用するにはかなりの知識が必要だよ。
ってこと。475に対する意見として書いた。

あんたの言う「きっちり設定」する為には、それなりの知識や経験が必要だろ?
だから、経験がないと難しいって言いたかった。
485 : nobodyさん - 2009/07/08(水) 01:44:36 ID:??? (+27,+29,-51)
MVCでの開発経験があれば、Smartyが難しいと感じる事は無いと思う。
最適化に関しては経験が必要だが、導入までは相当楽な部類かと思うぞ。
486 : nobodyさん - 2009/07/08(水) 02:16:30 ID:??? (-28,-26,-18)
どの程度までCとVを分離すればいいの?
487 : nobodyさん - 2009/07/08(水) 05:06:10 ID:??? (+18,+26,-1)
ご自由に
488 : nobodyさん - 2009/07/08(水) 09:25:14 ID:??? (-27,-30,-76)
(1)
if ($nantoka) {
$str="yes";
} else {
$str="no";
}

result:{$str}

(2)
result:{if $nantoka}yes{else}no{/if}
489 : 196 - 2009/07/08(水) 09:25:17 ID:??? (-25,-23,-60)
Smarty信者はMVCフレームワークとテンプレートエンジンの区別もつかんのか
490 : nobodyさん - 2009/07/08(水) 09:30:04 ID:??? (+25,+29,-17)
>>476で回答済の話をなぜ蒸し返す
491 : nobodyさん - 2009/07/08(水) 10:06:46 ID:??? (+23,+27,+0)
>>487
もっと詳しく
492 : nobodyさん - 2009/07/08(水) 12:47:51 ID:??? (-22,-29,-305)
ココでMVCの話はお門違いだけど、一寸だけ口挟む。

> どの程度までCとVを分離すればいいの?

普通、MとCを何処まで分離すればイイの?という質問が多いと思う。
" CとV "と言ってしまう時点で、MVCがまるで判っていない印象。

MVCの中心にあるのは、C(コントローラ)
何故 C かと言えば、Webアプリのエントリーポイント(プログラムの着火点)は、アドレスであると考えたから。
どんな処理でも、まずそのスクリプトにブラウザでアクセスしないと何も起こらないという事実から、エントリーポイントをアドレスと考えた。

次に、このアドレスの扱いを拡張しようと考えた。

スクリプト名 / メソッド名 / 引数 ... って感じで、アドレスから処理を操ろうとした訳だ。

この時、上記の記述を実際の処理に落とし込むのが、C(コントローラ)の役割。
C は、受け取ったアドレスから、処理の出力先を M(モデル)にするか、V(ビュー)にするか判断するだけ...

ここから、Cは只単に処理を振り分けるだけと考えれば、おのずとMVCそれぞれの割り振りも判ってくるハズ


493 : nobodyさん - 2009/07/08(水) 12:53:19 ID:??? (+17,+22,-3)
>>492
じゃMとVはどう仕事を割り振ればいいの?
495 : nobodyさん - 2009/07/08(水) 13:11:42 ID:??? (-22,-26,-8)
でもMVCモデル自体がモデルなんだから要するにMVC全体でサーバ処理するってことなの?
496 : nobodyさん - 2009/07/08(水) 13:53:41 ID:??? (+36,+29,-62)
MVCにとらわれすぎると、逆に可読性下げるからなぁ…
目的では無く、あくまで手法なんだからケースバイケースに実装すればいいんじゃね?

使い回し不要のビジネスロジックなんかは、Cに実装しても良いかと。
497 : nobodyさん - 2009/07/09(木) 12:40:59 ID:??? (+29,+29,-52)
>>495
> でもMVCモデル自体がモデルなんだから要するにMVC全体でサーバ処理するってことなの?

MVCモデルのモデルは事例を示すモデル。Mのモデルとは意味が違う。
同音表記だから同じ意味とか思うなよ...大人だろ!
498 : nobodyさん - 2009/07/09(木) 12:46:29 ID:??? (+32,+29,-38)
>>496

確かに可読性は下がる。また、RoRが過ぎるとフレームワークのブラックボックス化が著しくなり、
背後でどんな処理がなされているのか、まるで判らなくなる。

当然、カスタマイズしにくい...
499 : nobodyさん - 2009/07/10(金) 17:05:35 ID:??? (+36,+30,-64)
MVCを意識する・理解するというのは大事だと思うんだが、
どうやってその理解を深める勉強をするの?
結局、自分でソースを書いて、良いか悪いか判断するしかないよね?

俺が書いているソースなんて、まるっきり駄目な部類かも知れないけど、
それでも目的通り動いているし、俺にとっては可読性はあってわかりやすい。
なら、それで良いのではないか?と思うんだけど、後で困るのだろうか
500 : nobodyさん - 2009/07/10(金) 17:06:18 ID:??? (+22,+29,+0)
お前は何を言ってるんだ
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - string_format + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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