asp.net mvc では、@Section {} のようなものを使用してビューでセクションを定義でき、レイアウトでそれらを使用して、情報を配置/表示することができます。zend フレームワーク mvc に相当するものはありますか? 例は素晴らしいでしょう。
1 に答える
ビューのパーシャルまたはプレースホルダーは、ASP.NET から参照しているセクションとほぼ同じです。
プレースホルダーのドキュメントには、カスタム サイドバー コンテンツをレンダリングする例も示されています。
ビュー ヘルパーを使用するには、ディレクトリにビュー スクリプトを作成views/scripts
し、拡張子を付けて名前.phtml
を付け、必要なコンテンツを配置します。
//application/views/scripts/sidebar.phtml
<div id="sidebar">
Welcome <?php echo $this->username ?>
</div>
ビュー パーシャルのコンテンツを表示するレイアウトまたはビューでは、次のように呼び出します。
<?php echo $this->partial('sidebar.phtml', array('username' => 'drew010')) ?>
上記の呼び出しにより、username
渡された変数を使用して sidebar.phtml がレンダリングされます。ビュー パーシャルには独立した変数スコープがあるため、変数を配列として渡し、パーシャル内で使用できます。
プレースホルダーの使用は似ていますが、プレースホルダーのコンテンツはさまざまな方法で設定できます。プレースホルダー コンテンツへのアクセスも若干異なります。
あなたが持っているあなたのレイアウトで言ってみましょう:
<?php /* output sidebar from placeholder value "sidebar" */ ?>
<?php echo $this->placeholder('sidebar'); ?>
プレースホルダーのコンテンツは、出力をキャプチャするビュー スクリプトをレンダリングするか、プレースホルダー自体に直接割り当てることによって設定できます。
コンテンツをプレースホルダーに割り当てる最も基本的な例は次のとおりです。
<?php
// from controller:
$this->view->placeholder('sidebar')->set('<div id="sidebar">content</div>');
プレースホルダーのマニュアルでは、プレースホルダーのコンテンツの割り当て、追加、先頭への追加、および管理方法について詳しく説明しています。
どちらも、ASP.NET のセクションを置き換える目的に適しているはずです。