3

Zend Framework は初めてで、やろうとしていることについて質問があります。

私が取り組んでいるアプリケーションのほとんどのページのメイン コンテンツは、同じスタイルにする必要がある 1 つ以上の div 要素で構成されます。

生成したい HTML の例を次に示します。

<div id='admin-locations' class='panel'>
    <header class="panel-header">
        <h2>Locations</h2>
    </header>
    <div class='panel-content'>
        <div id='locations-table' class='google-vis-table'></div>
        <form id='locations'>
            ...
        </form>
    </div>
</div>

コントローラーのビュー スクリプトにフォームをプッシュし、このコードをコントローラーに追加することで、これを簡単に実行できることがわかっています。

<div id='admin-locations' class='panel'>
    <header class="panel-header">
        <h2>Locations</h2>
    </header>
    <div class='panel-content'>
        <div id='locations-table' class="google_vis_table"></div>
        <?php 
            echo $this->formLocations;
        ?>
    </div>
</div>

しかし、それは DRY ではありません。

ここで使用した例には、コンテンツに Google Visualization Table と Zend Form が含まれています。パネルにフォームを含める必要がある場合があります。そうでない場合もあるので、フォームデコレータは適していないと思います。したがって、基本的に、パネルの ID、パネル ヘッダー テキスト、および div class='panel-content' のコンテンツは動的である必要があります。他のすべては、パネルごとに同じままです。

ここで私の最良の選択肢は何ですか?

4

1 に答える 1

4

パーシャルの使用を検討することをお勧めします:http: //framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.partial

たとえば、次のものを含むadmin-locations.phtmlパーシャルを作成できます。

<div id='admin-locations' class='panel'>
    <header class="panel-header">
        <h2>Locations</h2>
    </header>
    <div class='panel-content'>
        <div id='locations-table' class="google_vis_table"></div>
        <?php echo $this->form; ?>
    </div>
</div>

これで、フォームを指定するかどうかに関係なく、ビュー内でパーシャルを繰り返し呼び出すことができます。

...
echo $this->partial('admin-locations.phtml');
echo $this->partial('admin-locations.phtml', array('form' => $this->yourForm);
echo $this->partial('admin-locations.phtml');
...

お役に立てれば。

于 2012-05-07T19:35:35.250 に答える