我目前正在尋找重新設計我的web應用程序的功能。 Web應用程序使用Yii(版本1)作爲後端。Yii中的MVC實現1
在這種情況下,我有一個模型和控制器。該模型用於存儲所有用戶跟蹤數據,並且適當地爲userTracking模型,但模型的實際邏輯位於名爲UserController的控制器中。我有一個名爲actionTrackUser($ id)的函數,用於爲特定用戶實現各種跟蹤邏輯併爲該用戶創建一個模型。
但是我現在需要將這個功能從UserController推斷到一個單獨的trackingController,它將實現各種模型的跟蹤。
但是,我需要能夠在新控制器和舊控制器中使用此功能。我想知道Yii 1中最好的方法是正確實現MVC。我想過要製作一個trackingModel並讓userTracking模型擴展它,但是爲了在兩個地方使用它,我會在模型中有很多業務邏輯。
我對MVC和Yii相當陌生,所以我想知道最好的方法嗎?
我故意將代碼留在這個問題之外,因爲它更多的是關於在Yii中實現這種功能的理論問題。
任何幫助表示讚賞。
謝謝!
你不能單獨在PHP中執行「MVC」。只要忘掉這個術語,並根據[SOLID原則](https://en.wikipedia.org/wiki/SOLID_(object-oriented_design))編寫可測試的解耦代碼。 – PeeHaa
但是,在這種情況下,謝謝你,我不能重寫原來的代碼,因爲它有點像一個黑盒子,由另一個開發人員開發。我可以將控制器代碼提取到模型中,但它仍然需要在兩個地方調用,我覺得使用模型來實現這一點是不正確的方法,但我無法想到另一個解決方案。謝謝@PeeHaa – liamjnorman
那麼你說的問題不能回答,因爲代碼沒有任何東西,並且永遠不會與MVC有任何關係。 – PeeHaa