[PHP-users 26911] Re: smarty での標準的な作り方を知りたい
遠藤 俊裕
endo_t @ nifty.com
2005年 9月 16日 (金) 22:21:49 JST
遠藤です。
色々な意見ありがとうございました。
今回釈然としなかったのはデータの定義が一カ所でそれが include
先で使われると言うところだったのですが、これは仕方ないと諦め
ました。それより作りの整理に専念したいと思います。
大体の人が、標準化を推し進めると軋轢が生じる、との意見をお持
ちだと思います。私もしかり、です。ただ、今後の保守性を考える
と多少の規制・制限はやむを得ないと思っております。
smarty もいわゆる規制・制限の一つだと思っています。その代わり、
view と logic を分ける事が出来る恩恵を授かるのだと思っており
ます。
で、今回は以下のルールにする事にしました。
・index.php 以外に用意する php は各 tpl に渡すためのデータを
生成するために用意する事にして、各 tpl の名称と同じにする。
・index.php やその他 URL から指定されるページはそこに使用さ
れるであろう全データを用意し、tpl に渡す。
・渡す変数名は各 tpl の名称と同じにし、連想配列で渡す。
例)
$Event=array();
while( $row = $rs->fetchrow(DB_FETCHMODE_ASSOC))
$Event[] = array( "Date"=>$row['Date'], "Text"=>$row['Text'] );
$Latest=array();
:
while( $row = $rs->fetchrow(DB_FETCHMODE_ASSOC))
$Latest[] = array( "Date"=>$row['Date'], "Text"=>$row['Text'] );
:
$Main = Array( "Event"=>$Event, "Latest"=>$Latest );
$smarty->assign("Main", $Main);
$smarty->assign("Head", $Head );
※上記 Main を Main.php にて作成、取り出そうと思っております。
・使う側では
{$Head.Title} の様に使う。
もし、これを見て、「こんな問題がある!」「こうしたらどうや?」
的な意見がありましたらお願いします。
まだ机上の空論なので、現実、壁にぶつかって行くと思います。
理想的な作りは無理にしても、出来るだけ理想に近い作りに出来るよ
うに頑張ってみようと思います。
次の課題は tpl 先で使いたい部品をどう定義して行くかです(^^;
例えば、「丸縁箱」は部品として定義されていればとても使い勝手が便
利です。
<RECTANGLE TYPE=CURVE BGCOLOR=WHITE LINECOLOR=ORANGE COL=2>
<TR><TD>9/15</TD><TD>今日は良い霧雨だ</TD></TR>
<TR><TD>9/16</TD><TD>今日は良い天気だ</TD></TR>
</RECTANGLE>
とか(RECTANGLE なんて無いです(^^;)。これをはき出す部品を、上記
で言うなら、
{RECTANGLE Data=$Event} みたいな。
さらにそういうのを IDE なんかで開発できるとうれしいですね。
夢は広がりますが、能力足りなくて思うように行かないです(^^;
ってか、そういう部品集ってあるんですかね(^^;
ご意見ありがとうございましたm(_ _)m
--
遠藤俊裕 <endo_t @ nifty.com>
PHP-users メーリングリストの案内