2012-02-28 8 views
0

初めてPHPでMVCを使いこなすだけです。私は、現在のチュートリアルで言及されていない問題に遭遇した簡単なチュートリアルに従っています:もし、インクルードしたいのであれば、グローバルファイル(ヘッダーやフッターなど)各ページのいくつかの特別な機能(ヘッダーやフッターの内側)?MVC-PHP内のグローバルファイル

「ログページ」と「ホームページ」の両方にfooter.phpが含まれているとします。しかし、「ログページ」では、フッターにテキストを追加したい(単純なままにしておく)。別々のファイルを作ることは一つの解決策ですが、それは気分が悪く、私の心の中でMVCの原則も破ります。

もう1つの解決策は、コントローラーからどのビューをフッターにロードするかを決定する$ _REQUESTを渡すことですが、これは私の考えではアプリケーションロジックなのでMVCを分割するようです。

私が信じ始めている3つ目の解決策は、モデルからコントローラーを介してフッターとヘッダーにデータを渡すことです。ヘッダーとフッターのビューを独自に作成します。

+0

モデルからデータがビューに渡されますか? MVCでなくてはなりません。コントローラーはモデルからデータを取得し、ビューに通知する必要があります。 header-body-footerテンプレート構造を分割することは、MVCとは関係ありません(ビューはビューです)。 – helle

+0

ええ、私は十分に明確ではありませんでした。データはモデルからコントローラに送られ、そこでデータがロードされ、正しいビューに渡されます。 –

答えて

0

これらはグローバルファイルなので、包含メカニズムはMVCパターンとは関係ありません。これらのヘッダ/フッタ内の関数は、実行のためにMVCパターンに従う必要があります。あなたのVirtualHostの定義に

php_admin_value auto_prepend_file "/Path/to/header.php" 
php_admin_value auto_append_file "/Path/to/footer.php" 

:私は考えることができる

一つの解決策は、これを追加することです。

これらのファイルに含めるビューを含めるためのメカニズムを追加します。

+0

わかりました、それは意味があります。他の誰かが何かを追加したい場合は、スレッドに未回答のままにしておきます(私はPHP MVCの解釈が多いという印象を受けました)。 –

+0

@KGクリステンセンクール – ThinkingMonkey