我來自一個Java/Grails的背景,似乎無法找到一個明確的答案網上到哪裏了CakePHP的應用業務邏輯應存放。通過「服務」,我正在討論通常通過依賴注入實例化的類,以在域對象上執行業務邏輯。他們應該能夠查詢任何域對象,並根據控制器操作進行更改。CakePHP的:如果把「服務」的邏輯
目前,CakePHP的「分量」類似乎是最匹配的這種行爲。我可以將組件加載到任何控制器中並根據需要執行其方法。但是,我已經在幾個地方看到組件不應該訪問數據庫,並且這樣做會導致一些陡峭的性能命中。
我也看過CakePHP的「行爲」類,它似乎並不適合票。它似乎能夠將域對象組織到數據結構設置中,但這不是服務執行的邏輯。另外,要將任何模型定義導入到行爲中,我必須自己編輯模型定義以允許訪問,這非常尷尬。
所以我問這個問題:應該在哪裏服務存儲邏輯是什麼?當然不是控制器,因爲它應該只包含處理請求和發送響應的最小邏輯。
這是一個免費的提示:遠離CakePHP。這是PHP中最糟糕的框架之一,它絕對不會像MVC那樣遠程實現。如果想要使用至少能夠識別「服務」概念的東西,可以嘗試Symfony2。 –
參數1:全局狀態。 CakePHP基本上是基於單例和其他靜態範圍參數的使用。 –
參數2:靜態類:大多數CakePHP核心都是由靜態方法組成的。這使得所有代碼都與特定的類名緊密結合,最終被用作名稱空間。 –