2011-08-07 10 views
0

PHP、私はメニュークラスを持っている場合、どのように表示するのですか? (MVCロジック)私は、メニューのクラスを持っている

addMenuItem ($parent) 
modifyLinkTarget ($item) 

など今、私がすべきは、HTML出力を生成show()方法、でそれを表示します。しかし、良い方法ではありません。なぜなら、1つのHTMLが生成されている間に複数のテンプレートがある場合です。 CSSはスタンドアロンを手助けしません:) MVCを傷つけず、フレキシブルに表示する方法は?

答えて

2

メニュークラスにはアイテム、リンクなどが含まれ、あなたのモデルです。あなたが正しく言うように、モデルは何も出力しません、それはビューのタスクです。そのため、モデル(メニュークラスオブジェクト)をビューに渡して出力する必要があります。そのためには、メニュークラスにgetAllMenuItems(int $ parentItem)などの追加メソッドが必要な場合があります。

<ul> 
<?php foreach($menuClass->getAllMenuItems(2) as $item) { ?> 
    <li>$item['text']</li> 
<?php } ?> 
</ul> 

あなたが見ることができるように、あなたはOOPの方法に従うことを、MenuItemクラスを使用してメニュー・モデルを拡張する必要がある場合があります:あなたのビューでは、このような何かを行うことができます。あなたのメニュークラスは、いくつかのmenuItemオブジェクトを編成します。

全体的に、あなたは次のような状況にあります。

header('some html utf8 http header stuff'); 
echo viewObject->generateHTML('template.tpl', $contentData, $menuObject); 
関連する問題