[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 06/08 11:25 / Filesize : 245 KB / Number-of Response : 924
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:nobodyさん [2008/02/02(土) 00:21:09 ID:6cKcKeTp]
まぬあるwww.smarty.net/manual/ja/

853 名前:nobodyさん mailto:sage [2010/01/18(月) 14:25:16 ID:???]
>>852
html_checkboxes使うの?それとも手動でやるの?

854 名前:nobodyさん mailto:sage [2010/01/18(月) 15:07:42 ID:???]
>>853
手動です
html_checkboxesのほうがやりやすいのでしょうか?

855 名前:nobodyさん mailto:sage [2010/01/18(月) 15:59:06 ID:???]
>>854
foreachでやるなら普通にループさせて
要素を出すところでifで比較してchecked入れればいいんじゃない?
$fugaのデータ構造がそのまま使えなくてちょい面倒だけど
予め使いやすいように変換するか、更にループさせて全件比較すればいいかと

856 名前:nobodyさん [2010/01/20(水) 22:11:47 ID:q80CCbb+]
以下のようにinterfaceによる拡張を試しています。

interface iSmarty { const MY_NAME = "foo"; }
class MySmarty extends Smarty implements iSmarty {/*設定*/}

{$smarty.const.MY_NAME}
値fooが表示されることを期待したのですが、MY_NAME(定数名)が表示されてしまいます。

マニュアルの{$smarty.const}の項を見ると、defineによる例が掲載されていて
確かにdefineで定義されていれば正しく値が表示されます。
バージョン2.1なのでちょっと古いのかなとも思うんですが、
php5のコードを追加するのは無理でしょうか。

857 名前:856 mailto:sage [2010/01/20(水) 23:35:47 ID:???]
すみません、しばらく考えていたのですが、断念することにしました。
拡張も考えてみたのですが、もとがphp4ですから、こちらのPHP環境と合わせて考えると
サブクラスで定義した"クラス定数"をテンプレートから呼び出すことは
おそらく無理と判断しましたm(_ _)m

確かなことは言えませんが、クラスを変数で参照できるphp5.3以降でなら
プラグイン等で機能追加できるような気がします。

858 名前:nobodyさん mailto:sage [2010/01/21(木) 04:40:11 ID:???]
php4だから無理ってどういうこっちゃ?どこに書いてあるん?

マニュアルの例はもうちょっと落ち着いて見直してみたほうがいいと思うけど

859 名前:nobodyさん mailto:sage [2010/01/29(金) 18:46:34 ID:???]
インサートプラグインの中でもテンプレート指定してキャッシュさせてるけど
インサートプラグインが1ページに5、6個あるとかなり速度低下してきてしまう

860 名前:nobodyさん mailto:sage [2010/01/30(土) 00:48:00 ID:???]
>>859
そんな、あなたにsmarty3の出番ですよ。
プラグインを書く必要ないぞ。

861 名前:859 mailto:sage [2010/01/30(土) 10:34:45 ID:???]
え、そうなの?プラグイン書かなくていいってどういうことですか?
今はindex.tplに{insert name="hoge"}って書いて
[insert.hoge.php]
function smarty_insert_hoge($params, &$smarty) {
 if(!$smarty->is_cached('plugin_hoge.tpl', "plugin|hoge")) {
  DBからデータを取ってきてassign
 }
 return $smarty->fetch('plugin_hoge.tpl', "plugin|hoge");
}
DBに更新を加える時にclear_cacheという感じでやってるんですが、作り方としておかしいですか?
こういうインサートプラグインが増えてくると、is_cachedとfetchをその分しなきゃいけないんで遅くなってると思うんですが
smarty3だと改善されてるんでしょうか?



862 名前:nobodyさん mailto:sage [2010/01/30(土) 11:59:30 ID:???]
Smarty3だと{nocache}で囲むだけでいいらしいよ。だから、インサートプラグインいらず。

863 名前:nobodyさん mailto:sage [2010/01/30(土) 12:29:50 ID:???]
nocacheなら↓で実現できたヤツですね、最初からあるのとないのでは大違いでしょうが。
www.smarty.net/manual/ja/caching.cacheable.php

864 名前:nobodyさん mailto:sage [2010/01/30(土) 14:12:57 ID:???]
Smarty2より遅いSmarty3なんてゴミにしかなりえない

865 名前:859 mailto:sage [2010/01/30(土) 14:45:10 ID:???]
>>862
キャッシュしたいのでnocacheは用途が違う気がします

866 名前:nobodyさん mailto:sage [2010/01/30(土) 15:09:07 ID:???]
あらかじめオブジェクトをシリアライズしておいて、それをアンシリアライズして読めば早いよってことなんだけど
方法がよく分からない。
結局require_once "Smarty.class.php"しなきゃいけないんだよね?
意味分かる人教えてください

Smartyの読み込みコスト(時間)を削減する
ttp://code.xenophy.com/?p=73

867 名前:nobodyさん mailto:sage [2010/01/30(土) 16:02:16 ID:???]
意味わかんない記事ですね
効果も0.01秒だし

868 名前:nobodyさん mailto:sage [2010/01/30(土) 16:56:45 ID:???]
0.01秒って結構大きいんじゃね?

869 名前:nobodyさん mailto:sage [2010/01/30(土) 16:57:37 ID:???]
なんで?

870 名前:nobodyさん mailto:sage [2010/01/30(土) 17:23:46 ID:???]
あれ?デカくね?

871 名前:nobodyさん mailto:sage [2010/01/30(土) 17:31:09 ID:???]
なんでと聞いているんだ



872 名前:nobodyさん mailto:sage [2010/01/30(土) 18:09:30 ID:???]
1回表示するたびに0.01秒だろ
うちのサイトだと0.01秒早くなったら速度2倍だぜ

873 名前:nobodyさん mailto:sage [2010/01/30(土) 18:11:35 ID:???]
感じられねーだろw

874 名前:nobodyさん mailto:sage [2010/01/30(土) 21:26:36 ID:???]
>>873
濡れ濡れよ

875 名前:nobodyさん [2010/01/31(日) 16:37:31 ID:tjv1ZgGA]
compile_dirのディレクトリがなかったり、書き込み権がない場合
コンパイルエラーになりますが、たまにパーミッション設定を忘れたりして
こういう現状が度々あります。

忘れず確認すれば良い事ですが、なにか効率の良い方法はないでしょうか?

876 名前:nobodyさん mailto:sage [2010/01/31(日) 16:53:46 ID:???]
どんな風にできたらいいの?

877 名前:nobodyさん [2010/01/31(日) 17:59:24 ID:tjv1ZgGA]
・コンパイルエラーを出さない
・コンパイル用のディレクトリがない場合、自動的に作成

と言うぐらいしか思いつきません
後者はis_dirでチェックすればいいと思うのですが、前者は方法自体わかりません・・・

878 名前:nobodyさん mailto:sage [2010/01/31(日) 18:01:14 ID:???]
>>877
エラーメッセージでファイルを検索→当該行をコメントアウト

879 名前:nobodyさん mailto:sage [2010/02/01(月) 13:24:00 ID:???]
>>878
そんな凄い事が出来るんですか?
当該行をコメントアウトって、文字列の置換とは違うんですよね?

880 名前:nobodyさん mailto:sage [2010/02/02(火) 14:53:16 ID:???]
Smarty2.6からSmarty3への移行ってlibsの中身変えるだけでいいんですか?

881 名前:nobodyさん mailto:sage [2010/02/02(火) 14:54:00 ID:???]
えっ?



882 名前:nobodyさん mailto:sage [2010/02/02(火) 16:28:53 ID:???]
string:リソースとforが欲しいだけなんだが、Smarty2に入れてくれ

883 名前:nobodyさん mailto:sage [2010/02/03(水) 00:29:48 ID:???]
>>880
互換性はあるとかないとか、
廃止される構文もあるとかないとか

884 名前:nobodyさん mailto:sage [2010/02/03(水) 01:26:14 ID:???]
stringリソースは自分で作れ。

PHPっぽく数学処理出来るのはいいよね。Smarty3。
開発に時間かけ過ぎてて、既に腐り始めている気がするけど。

extend欲しいな。

885 名前:nobodyさん [2010/02/05(金) 12:00:27 ID:1wZyvV1Q]
default_modifiersでescape:htmlやってたらforeachでエラー出るとか{debug}ができないとか
そういうのは最新版では治ってるの?

886 名前:nobodyさん mailto:sage [2010/02/05(金) 16:09:07 ID:???]
debugとescapeプラグインを数行書き換えるだけで治る。

887 名前:nobodyさん mailto:sage [2010/02/05(金) 18:17:12 ID:???]
Smarty3のstringリソースってキャッシュしてくれないのか、ファイルの更新日時とか取得できないから当たり前か・・・

888 名前:nobodyさん mailto:sage [2010/02/06(土) 16:55:05 ID:???]
smartyとquickformの組み合わせでdefault_modifiers escapeするとフォームが全部エスケープされてしまうね
じゃ、nodefaultsにすりゃいいかというと、フォームのユーザが追加できるようにしている場合、
デフォルトの値(フォームのセレクトとか)にエスケープしたい文字があると途端に無理が出る
結局ロジック側でh()するしかなくなる

889 名前:nobodyさん [2010/02/09(火) 13:31:36 ID:Af+mgrun]
Smartyで画像の出力ってできる?
"Content-Type: image/jpeg"的な意味で。

890 名前:nobodyさん mailto:sage [2010/02/10(水) 09:26:09 ID:???]
プラグイン作れば?

891 名前:nobodyさん mailto:sage [2010/02/10(水) 11:02:43 ID:???]
>>889つーか、ここは正攻法でMLに投げるんだ!



892 名前:nobodyさん mailto:sage [2010/02/12(金) 16:19:32 ID:???]
>>889
テンプレートファイルの内容を画像データにすればいいんじゃないかな・・・

893 名前:nobodyさん mailto:sage [2010/02/12(金) 21:11:24 ID:???]
パーサーが変なの拾って壊しちゃうかと
displayやfetchしてる所でget_file_contentするだけだろ
しょーもな

894 名前:nobodyさん mailto:sage [2010/02/12(金) 21:12:15 ID:???]
関数名違うかも

895 名前:nobodyさん mailto:sage [2010/02/17(水) 16:31:45 ID:???]
file_get_contents()だな。
確かにSmartyが有用なケースが思いつかない。

896 名前:nobodyさん mailto:sage [2010/02/20(土) 12:34:03 ID:???]
MTってSmarty使ってるのか

897 名前:nobodyさん mailto:sage [2010/02/20(土) 12:44:55 ID:???]
気のせいか

898 名前:nobodyさん [2010/02/20(土) 17:16:25 ID:0jUjLrgq]
ファイルではなく
変数に格納されたテンプレートを使うために
変数用のリソースプラグインを使って試行錯誤してるのですが
相談させてください。

このリソースプラグインに変数(テンプレートの内容)を渡す方法ですが
2つ思いつきました。

1つは
$hoge = "ここにテンプレートの内容";
$smarty->fetch("var:hoge");

のように変数名を渡して
プラグイン側で グローバル変数の$hogeの内容を取得。
しかしグローバル変数を使うというのがちょっと気になります。

もう1つの案は
$smarty->fetch("var:{$hoge}");
としてテンプレートの内容自体を渡す方法。

しかしこれだと長い名前の中間ファイル(template_cにできるファイル)
が作られてなんだか気持ちが悪いです。

毎回コンパイルでいいので中間ファイルは作られないほうがいいのですが
それもできない感じ。

みなさんはどうしてますか?


899 名前:nobodyさん mailto:sage [2010/02/20(土) 22:01:34 ID:???]
リソースプラグイン側で
グローバル変数じゃなくてSmartyにassignされた変数を見るようにすればいいんじゃねーの?

900 名前:898 mailto:sage [2010/02/24(水) 09:57:22 ID:???]
>>899
規制でかけなかった・・・

結局Smartyを拡張してプロパティを追加したら
プラグイン側で普通に見れました

>>899
ありがとうございます
なるほど、それは気づきませんでした
そのほうが手軽ですね


901 名前:nobodyさん mailto:sage [2010/03/03(水) 01:14:47 ID:???]
Tenjin使い始めた。smartyより3倍早いらしい。
フレームワークをやったことなかったけど、比較的わかり易い。



902 名前:nobodyさん mailto:sage [2010/03/03(水) 16:18:29 ID:???]

www.kuwata-lab.com/presen/LL2007LT.pdf

14-15ページを見た感じだと制御はPHPそのままで
PHPタグ外部分はわざわざechoするのか・・・

903 名前:nobodyさん [2010/03/04(木) 15:15:33 ID:jG8+9EsN]
Smarty3はいつになったら出るんだよ。

904 名前:nobodyさん mailto:sage [2010/03/05(金) 09:36:42 ID:???]
遅い3はいらない

905 名前:nobodyさん [2010/03/06(土) 00:22:27 ID:3cIJcZyy]
Smartyのoutputfilterで文字コードをUTF-8からSJISに変換する処理を入れています。

こんな風に
$smarty->register_outputfilter("filterSjis");

function filterSjis($buff, &$smarty) {
return mb_convert_encoding($buff,"SJIS-win","UTF-8");
}

ブラウザで表示させると頭に「?」が入ってるんだけどこれはなぜでしょうか?
Smarty 2.6.26 PHP 5.3.2 です

906 名前:nobodyさん mailto:sage [2010/03/06(土) 01:54:29 ID:???]
UTF-8テンプレートにBOMが入ってんじゃねーの?

907 名前:nobodyさん mailto:sage [2010/03/06(土) 08:38:23 ID:???]
ありがとう
その通りでした


908 名前:nobodyさん mailto:sage [2010/03/06(土) 10:16:09 ID:???]
自己中マルチはシネよ

909 名前:nobodyさん mailto:sage [2010/03/06(土) 11:56:50 ID:???]
すまんね PHPはあんまり慣れてないんだ
普段はGAEでjavaなんだよ
これあげるからシネとかいわないで
mix-tube.appspot.com/

910 名前:nobodyさん mailto:sage [2010/03/06(土) 12:20:22 ID:???]
そういう問題じゃないけど許す

911 名前:nobodyさん mailto:sage [2010/03/06(土) 13:54:43 ID:???]
さらに宣伝かよ



912 名前:nobodyさん mailto:sage [2010/03/07(日) 07:30:25 ID:???]
β8はfinal betaらしいので、次はRC版か

913 名前:nobodyさん mailto:sage [2010/03/11(木) 09:30:07 ID:???]
俺の勉強不足かも知れないんだけど、
cache_lifetimeって以下の仕様じゃないんだね

10秒に設定→10秒経ってるキャッシュファイルは全て削除

914 名前:nobodyさん [2010/03/11(木) 17:23:06 ID:TZPJnNmb]
削除されるわけないだろ。

915 名前:nobodyさん mailto:sage [2010/03/12(金) 13:20:51 ID:???]
じゃ、キャッシュ溜まりまくるけど
どの段階でclear_all_cacheするの?

916 名前:nobodyさん mailto:sage [2010/03/12(金) 15:48:13 ID:???]
>>913
同じく削除されると思うのが普通な気がする
セッション管理みたいに

>>915
必要なら好きなときにどうぞ


917 名前:nobodyさん mailto:sage [2010/03/12(金) 17:14:35 ID:???]
削除というよりは、要求されたページのキャッシュがlife timeより古かったら
再生成(上書き)されると思ってる。
つまり、要求されなきゃそのまま放っておかれる(わざわざ消さない)と。

918 名前:nobodyさん mailto:sage [2010/03/12(金) 21:49:30 ID:???]
マニュアル良く読めw


919 名前:nobodyさん mailto:sage [2010/03/13(土) 05:31:12 ID:???]
>>918
ん?

920 名前:nobodyさん mailto:sage [2010/03/13(土) 13:02:36 ID:???]
cache_lifetime = -1;にしてるオレには関係のない話だな

921 名前:nobodyさん mailto:sage [2010/03/13(土) 15:04:04 ID:???]
負荷だいじょうぶか?



922 名前:nobodyさん mailto:sage [2010/03/13(土) 16:11:14 ID:???]
-1は無期限でキャッシュし続ける
0が毎回作成
CMSみたいに管理画面から更新するなら、
そのタイミングで必要な分だけキャッシュを削除すればいいしね

923 名前:nobodyさん mailto:sage [2010/03/13(土) 16:11:51 ID:???]
×キャッシュし続ける
○キャッシュを使い続ける
でした






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<245KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef