2009年3月20日金曜日

 

【symfony】

symfonyのテンプレートコード断片化 - ueblog

スペニット?とか自作のヘルパーやコンポーネントの種類と使用法。

インクルード(include)

静的なHTMLやactionなどに依存しないテンプレート。

/* テンプレート呼び出し */
<?php include(sfConfig::get('sf_app_template_dir').'/footer.php')) ?>

「templates/」ディレクトリ配置。

パーシャル(partial)

actionからの引数を渡せるテンプレート。
ファイル名は「_(アンダーバー)」をつける。

/* パーシャル呼び出し */
<?php include_partial('global/sidebar', array('site' => $site)) ?>

例では「app/application/template/_sidebar.php」。moduleを生成した時に出来る「_form.php」はこれか。
呼び出されるファイルは以下のように変数を使える。

/* 「_sidebar.php」 の例 */
<h1><php echo $site ?></h1>

コンポーネント(component)

パーシャルよりもさらに動的なロジックが必要な場合。action本来の処理とは関係ないプログラムを分ける。
テンプレートやレイアウトそのものじゃなく、それに関わるクラスとか処理。

/* コンポーネント呼び出し */
<?php include_component('news', 'headlines', array('user' => $user)) ?>

コンポーネントスロット(component_slot)

コンポーネントを、呼び出すactionやmoduleによって変化させる。設定は「apps/myapp/config/view.yml」や「app/myapp/module/frontend/view.yml」などにする。(オーバーロードみたいなもんか)

スロット(slot)

テンプレートで部品を繰り返したい時に使う。同じ処理を2度しないで済む様、結果を変数を使わず呼び出せる。

/* スロットの使い方 */

<?php slot('hoge') ?>
  hoge
<?php end_slot() ?>
<?php include_slot('hoge') ?>

ラベル:


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google