2016-09-05 22 views
0

這實際上是一個關於MVC標準和效率的問題。PHP MVC從另一個模型請求數據

我有一個用戶控制器,並希望從我的會話模型中檢索數據。有兩種方法可以做到這一點:

我可以從用戶控制器中直接從會話模型請求數據。 (UserController的---> SessionModel)

OR

我可以問SessionController問SessionModel的數據。 (UserController ---> SessionController ---> SessionModel)。

這兩種方式似乎都有效,我不確定這兩種方式是不是一種「不正確」的做我想做的方式。然而,第二種選擇似乎有些低效和毫無意義。它似乎正在添加另一個圖層以檢索數據。但是,我不確定第一個選項是否違背了MVC的規則。

任何意見,將不勝感激。

回答

1

最佳做法是直接將模型調用到控制器中。所以你應該在UserController中調用你的SessionModel。通過這種方式,該循環非常短而且高效。

在我看來,最好的辦法是引入另一層「服務」,如果你使用框架(如Symphony),你可以使用dependency injection模式來解決這類問題。

+0

感謝您的意見。我實際上沒有使用任何框架,我從頭開始,我應該這樣說。你能否向我解釋一下這個「服務」層?它可以包含什麼,它如何工作?道歉,我不太明白你的意思:) – user3727040

+0

要理解服務,你應該閱讀這篇文章[鏈接](https://www.sitepoint.com/an-introduction-to-services/),它解釋服務如何工作,如何實現它們以及如何將它們集成到MVC模型中。使用框架更容易,只是因爲它背後的邏輯已經「可以使用」了。希望有所幫助... –

相關問題