2010-08-12 154 views
1

我正在研究一個在控制器中具有函數invokeView()的框架。到目前爲止,這基本上包含了一個$ target php類,它反過來顯示了一個聰明的模板。我希望$ target類能夠訪問在控制器內部創建的$ response對象(與調用$ target頁面的地方相同)。
而不是讓$目標頁面從全局區域(如會話存儲)中獲取$ response對象,我想將它傳遞給$ target類,也許通過在$ target對象上顯示一個函數,如顯示($響應)。看起來如果我做了這樣的事情,調用堆棧會繼續增長並且不斷增長,這並不好。PHP調用堆棧問題

我在說什麼有什麼意義?如果是這樣,更有意義的是,通過$迴應或從會話中獲取?

謝謝!

+0

您能否澄清一下,'invokeView'是否帶有任何參數? '$ target'是View類嗎? 「通常情況下」控制器會設置某種類型的上下文變量以供在視圖中使用,您是否可以在其中添加$響應?怎麼樣覆蓋Controller中設置'$ target'類的方法,並在'$ target'類'__construct'方法中添加一個附加參數? – sberry 2010-08-12 02:51:45

+0

控制器類根據$ request對象中的屬性執行命令。一旦所有命令執行完畢(如果有任何命令轉發給另一個命令),那麼控制器將根據剛纔調用的命令以及該命令的狀態(OK,ERROR等)確定要顯示的視圖。一旦它有適當的視圖,說'註冊',然後它調用invokeView('target')。然後InvokeView只需調用: include'/lib/pages/target.php'。 使用當前的'include'設置,我必須將$ request(或$ response)對象添加到目標將訪問它的會話var中。 – user417918 2010-08-12 03:10:05

+0

我只是不確定這是否是傳遞變量的最佳方式。如果我在目標類上有一個_構造,我擔心通過在控制器類中實例化它,我會在堆棧上創建大量永遠不會彈出的調用。 – user417918 2010-08-12 03:11:02

回答

0

不,它沒有意義,應該不是問題。 PHP有一個函數嵌套限制,無論如何都要照顧太深的嵌套代碼調用:)