【PHP】 Smarty 【テンプレートエンジン】 第2章
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/03/29(月) 14:41:04ID:???具体的に言うと、php のプレゼンテーションからアプリケーションのロジックとコンテンツを分離して管理する事を容易にします。
これは、プログラマーとテンプレートデザイナーの役割が異なり、
これらの役割を違う人間が受け持っている場合に最適だと言えます。
0446nobodyさん
2010/06/13(日) 18:55:00ID:???0448nobodyさん
2010/06/13(日) 21:10:04ID:???0449nobodyさん
2010/06/13(日) 21:55:44ID:???【フレームワークであり】Smartyスレ第3章【アダプターにもなる】
で決まりだな。
0450nobodyさん
2010/06/14(月) 01:43:33ID:???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:???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:???この辺境の地ですげえな。
0458nobodyさん
2010/06/15(火) 17:48:22ID:???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:???各プロパティやメソッドが camelCaseや setter / getter になったのは嬉しいね。
0463nobodyさん
2010/06/16(水) 18:13:58ID:???0464nobodyさん
2010/06/16(水) 18:15:32ID:???業務で使うなら2のほうが枯れてて良いと思うけど
0465nobodyさん
2010/06/16(水) 18:26:30ID:???ありがとうございます
Smarty3はRCとのことですが、業務で使われるようになるのはいつごろになると思われますか?
0467nobodyさん
2010/06/16(水) 20:34:41ID:???Smarty2使ってる人はある程度自作プラグイン活用してるだろうし、乗り換えまでは少し時間かかるかもね。
全く初めてなら、ドキュメントやサンプルの揃ってる2から勉強するのもありかと。
0468nobodyさん
2010/06/17(木) 06:07:27ID:???0469nobodyさん
2010/06/17(木) 17:53:52ID:???0470nobodyさん
2010/06/18(金) 01:47:44ID:???全てPHP5で書き直されて、軽量化と大幅な機能追加が行われた。
詳しくはREADME読むといいよ。
http://smarty-php.googlecode.com/svn/branches/Smarty3Dev/distribution/README
完全に書き直しただけあって現状では不具合も未知数なので、
暫くは様子見が吉だと思う。
0471nobodyさん
2010/06/18(金) 17:31:08ID:???ありがとう。PHP5のみか。
基本問題ないけど、たまーに今更PHP4とか言ってる案件あんだよね。
upgrade.php使ったりして少しは差異吸収させるけど。
ぐぐったついで。
Smarty2.0からSmarty3.0への変更点 | スイナシア
ttp://suin.asia/2010/03/06/smarty_3.0
0472nobodyさん
2010/06/22(火) 11:28:33ID:???0473nobodyさん
2010/06/22(火) 19:09:39ID:???0474nobodyさん
2010/06/28(月) 01:57:03ID:???0475nobodyさん
2010/06/28(月) 10:13:15ID:???0476nobodyさん
2010/06/28(月) 17:12:46ID:???0477nobodyさん
2010/06/29(火) 01:16:19ID:???まぁ趣味でやる分にはいいんじゃない?
0478nobodyさん
2010/06/29(火) 09:00:08ID:???まぁ趣味でやる分には何を嫌おうがいいじゃない?
0479nobodyさん
2010/06/29(火) 17:24:50ID:???http://www.slideshare.net/ketaiorg/php-4638298
0480nobodyさん
2010/06/29(火) 22:55:29ID:???0481nobodyさん
2010/06/30(水) 12:00:10ID:???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:???0484nobodyさん
2010/06/30(水) 18:44:24ID:???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:???includeを反映させる方法「Dreamweaver Smarty でググると出てくる方法」
で反映させる事は出来たんだけど、デリミタタグを{{ }}に変更したら出来ない。
やり方知ってる人がいたら教えて下さい。
0488nobodyさん
2010/07/02(金) 01:50:44ID:???ぐぐって見たけど、複数のエクステンションがあるっぽいね。
どの方法でやってるか書かないと誰も答えられないと思うよ。
0489nobodyさん
2010/07/02(金) 12:28:04ID:???そんなに複数のエクステンションはないと思いますよ。
自分が試したのは「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:???VをSmarty使うかどうか悩む。
Smartyにはエスケープとか日付フォーマットの変更とか使えるから、
Viewで表示を変える事は出来る。
でも、アクセス毎にコンパイルファイルが生成されるのが気になる。
サイト構造のディレクトリ分けの時とかさ。
意外とPHPフレームワークでSmarty使ってるって少ないんだよね。
Ethnaぐらいか?
0493nobodyさん
2010/07/03(土) 19:52:53ID:???コンパイルは最初の1回だけでは?毎回ソースをparseするよりは早くなるんだししょうがないっしょ。
あとはキャッシュ使うなりの運用じゃね?
0494nobodyさん
2010/07/04(日) 00:41:54ID:???0495nobodyさん
2010/07/04(日) 01:17:12ID:???そうじゃなくて、templates_cとかcacheとかの置き場所に困るんだよ。
サイト構造的に、場面展開する時とかね。
あと、単純にコントローラーにSmarty変数を書いていくと
コントローラーが肥大化してしまうと言う悩みもある。
テンプレートファイルにPHP直書きだとそうでもないからね。
0496nobodyさん
2010/07/04(日) 02:26:33ID:???置き場所に困る意味がわからないのだが・・・適当な場所にディレクトリ作るだけじゃないの?
あと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:???単純に「公開用」「会員用」「管理者用」の画面があった場合、
/templates_c
/html、/member、/admin(長くなるから横書きにした)
みたいな感じにするか
/admin
/templates
/templates_c
/cache
とするかそれぞれの好みに寄るだろうけど、
サーバにアップする時、ディレクトリ作ってパーミッションを777にして
とかいう作業が少し面倒に感じてね。
>自分用フレームワークなら、自分が使いやすい方で作るのが良いかと思う。
自分用フレームワークを他人が見ても分かる形にしたいからさ。
その時に、テンプレファイルで{$name}とするのと、<?php echo $name;?>
とするのと、一緒だと思って。
どこかで「ビューで表示を変える」というのを見たから
Smartyを使おうと思ったんだけどね。いまいち、使い方で悩むわけよ。
0500nobodyさん
2010/07/04(日) 22:39:56ID:???自分だったら
/templates/public/
/templates/member/
/templates/admin/
/templates_c/
/cache/
かな・・・ここらへんはプロジェクトディレクトリの構成によるから、
他のフレームワークを参考に決めればいいと思う。
>>自分用フレームワークを他人が見ても分かる形にしたいからさ。
で、あればView用Interfaceを作っておいて、
好きなテンプレートエンジンを組み込めるようにしておけばいいと思うよ。
実際に他のフレームワークとかビュークラスを触ってみれば良いよ
0501nobodyさん
2010/07/05(月) 01:41:29ID:???ってなるからな。
Viewとなるテンプレファイルはコントローラーで指定したいから
Interface作ると柔軟性に欠けるんだよな。俺の経験では。
フレームワークはEthnaとZendとCakeを少しかじっただけだから
まだ利点が理解できてないかも知れないけど。
ま、Smartyスレで「フレームワークのビューにSmarty使うってどうよ?」
って問いかける事自体おかしいのかもしれないがw
0502nobodyさん
2010/07/05(月) 02:57:05ID:???普通はフレームワークに柔軟性と自由度を与える為にInterface化するんだけど・・・Interface自体を思い違いしてない?
もしくはViewじゃなくてSmartyに依存しすぎたInterface設計をしてないかい?
0503nobodyさん
2010/07/05(月) 04:43:21ID:???ディレクトリごと別のプロジェクトに移しても動くように。
ある意味、オブジェクト思考的なカプセル化というか、粗結合というか。
0504nobodyさん
2010/07/05(月) 10:22:53ID:???Interfaceを小一時間ほど勉強したけど、完全に勘違いしてた・・・
ただ、あまり利点(使い方)が思い浮かばない。
>で、あればView用Interfaceを作っておいて、
>好きなテンプレートエンジンを組み込めるようにしておけばいいと思うよ。
と言うのが想像出来ん。もう少し勉強してみるよ。
0505nobodyさん
2010/07/07(水) 01:22:28ID:???驚愕の事実だぜ。
0506nobodyさん
2010/07/07(水) 02:25:23ID:???キャッシュもob_get_contents使って自作すればいいし。
0507nobodyさん
2010/07/07(水) 04:28:11ID:???この一行で頭の悪さが露呈しているなw
0508nobodyさん
2010/07/07(水) 10:20:55ID:???0509nobodyさん
2010/07/07(水) 13:11:32ID:???PEARのキャッシュを使いたがるんだ。
0510nobodyさん
2010/07/07(水) 13:13:49ID:???PEARのキャッシュ使う人はSmarty使うページと使わないページがあって、それを統一したいとかじゃね?
0512nobodyさん
2010/07/07(水) 15:47:30ID:???0513nobodyさん
2010/07/07(水) 20:07:17ID:???フレームワークの大部分はPHP5で記述して
ViewだけPHP4で書くのか?
ダサすぎなんだがw
0514nobodyさん
2010/07/07(水) 20:10:42ID:???0515nobodyさん
2010/07/07(水) 20:14:39ID:???0517nobodyさん
2010/07/07(水) 23:07:02ID:???日本語は正しく使おうね。
曖昧なままに書くから誤解されるんだ。
それから、冷やかし、煽り、中傷、その他他人が不快に思う言動は他でやってくれたまえ。
0518nobodyさん
2010/07/07(水) 23:47:02ID:???0519nobodyさん
2010/07/07(水) 23:47:40ID:???0520nobodyさん
2010/07/08(木) 23:50:36ID:???0521nobodyさん
2010/07/09(金) 01:41:14ID:???0522nobodyさん
2010/07/09(金) 06:35:49ID:???誤って!cakeさんに誤って!PHP4でも凄いですね!って言って!!ほら!!
0523nobodyさん
2010/07/09(金) 16:35:32ID:???prefilterには$tpl_sourceでテンプレートの中身(文字列)と、&$smartyが渡されるのですが
テンプレートのファイルパスを取得する方法はないでしょうか?
通常ならばセットしたテンプレートのパスがそのままなので問題ないのですが
{include}を使った場合に、インクルード「された」テンプレートのパスが分からないので困っています。
テンプレートのパスによってフィルタの挙動を変えたいと思っているもので…
0524nobodyさん
2010/07/14(水) 18:02:47ID:???■Ktai Library for cakephp 勉強会@関東
URL: http://atnd.org/events/6209
日時: 2010/07/17 11:00 to 15:00
場所: マイ・スペース&ビジネスブース池袋西武横店
参加条件: Masa-Pさんの本「PHPで作る携帯サイト デベロッパーズガイド」を持参、かつ4章までを自力である程度実装できている、もしくは出来る方
■OpenPNE3で学ぶsymfony勉強会
URL: http://atnd.org/events/6255
日時: 2010/07/24 15:00 to 17:00
場所: 手嶋屋新宿御苑オフィス
内容: この勉強会は毎回OpenPNE3の各機能、仕様にフォーカスを当て、ベースフレームワークであるsymfonyを理解していく勉強会です。
参加者はみんなsymfonyに興味のあるプログラマです。Webエンジニアとのネットワークづくりにもお役立てください。
■Python4PHPer 第7回講習会
URL: http://atnd.org/events/6344
日時: 2010/08/12 10:00 to 22:00
場所: 国立オリンピック記念青少年総合センター
内容: Python未経験者向けの、PythonとGoogle App Engine (GAE) の入門講座です。
■第11回 LOCAL PHP部勉強会
URL: http://atnd.org/events/6443
日時: 2010/08/28 14:00 to 16:30
場所: 札幌市産業振興センター セミナールーム9
0525nobodyさん
2010/07/14(水) 19:57:00ID:???0526nobodyさん
2010/07/15(木) 11:02:53ID:???0527nobodyさん
2010/07/15(木) 12:52:10ID:???0528nobodyさん
2010/07/15(木) 14:40:56ID:???0529nobodyさん
2010/07/16(金) 06:21:58ID:???0530nobodyさん
2010/07/17(土) 21:47:29ID:???すげーw
0531nobodyさん
2010/07/17(土) 21:53:00ID:???Smarty それ自体 アダプタ
Smarty それ自体 アダプタ
Smarty それ自体 アダプタ
Smarty それ自体 アダプタ
0533nobodyさん
2010/07/19(月) 17:40:42ID:???0534nobodyさん
2010/07/19(月) 17:43:59ID:???0535nobodyさん
2010/07/19(月) 18:47:15ID:???0536nobodyさん
2010/07/19(月) 19:52:37ID:???cache ・・・ PHPコードを実行した出力結果のキャッシュ
0539nobodyさん
2010/07/20(火) 18:17:46ID:???$smarty->assign('arr',array(
'2010-07' => '7月のデータ',
'2010-08' => '8月のデータ',
));
の様にキーに-記号が含まれてる場合に
{$arr.2010-07}とすると
$arr[2010]-7みたいなパースになってしまうのですが
どのように書けばいいのでしょうか?
0540nobodyさん
2010/07/20(火) 20:17:27ID:???0541nobodyさん
2010/07/21(水) 04:35:28ID:giVfeoMUが、テンプレートファイルにそんなものはなく、それどころか以下のような状況です
Safari5
-------------------------
・ソースを見ても該当箇所に > はない
<div><table class="tableH">〜〜
Firefox3.6.6
-------------------------
・ソースを見ても > はない
<div><table class="tableH">〜〜
・「>」を選択して、選択した部分のソースを表示だと
<div>
>
<table class="tableH">〜〜
Chrome5
-------------------------
・ソースを見ても > はない
<div><table class="tableH">〜〜
・「>」を選択して、要素の検証をすると
<div>
">"
<table class="tableH">〜〜
何が原因なんでしょうか? ご意見よろしくお願いします。(ブラウザは全てmacです)
0542541
2010/07/21(水) 04:38:29ID:giVfeoMU<div>
&gt;
<table class="tableH">〜〜
です。 すみません、半角で書いたら>に変換されたので全角に書き直しました
0543nobodyさん
2010/07/21(水) 05:30:29ID:???テンプレートじゃないなら、変数確認したら。
0544nobodyさん
2010/07/24(土) 20:12:03ID:???Smarty アダプタパターン
Smarty アダプタパターン
Smarty アダプタパターン
Smarty アダプタパターン
0545nobodyさん
2010/07/24(土) 23:04:53ID:???■ このスレッドは過去ログ倉庫に格納されています