我正在使用ZF的MVC應用程序,並大量混淆我的代碼應該如何構造。ZF MVC - 對象和映射器
我有一個程序性應用程序,它基本上是一個巨大的長文件,具有我希望我的應用程序執行的所有操作的功能....就像getUsername($ id)等等。所以現在我正在重建整個事物在ZF中,因爲我當前的代碼庫不可行,垃圾並且很難調試。
我是新來的MVC和大量混淆應該如何佈局,什麼應該談什麼等等。所以我知道關於模板和控制器需要瘦,以及你應該有胖模型但我很困惑邏輯的需要。
我正在做一個遊戲,平時有喜歡的對象....用戶,村,軍隊,MapSquares,資源等
如果我完全想它理論,我只想說: 1用戶對象包含許多村莊,每個村莊屬於一個廣場,並且包含軍隊(其中包含許多單位)。
所以我認爲我的模型不應該包含任何邏輯,只是獲取和設置函數列表來檢索數據,處理邏輯,問問題應該在Mapper內部完成......例如:
$villageMapper = new VillageMapper();
// Get village from database using mapper
$village = $villageMapper->getVillage($id, new Village());
當我想確定說兩個村莊相互攻擊的結果時,在哪裏做?我會做類似的事情嗎?
$outcome = $villageMapper->determineAttackOutcome($village1, $village2);
或者我會說......戰術物體裏面有一些邏輯嗎?
$battle = new Battle();
// Add participants
$battle->addAttacker($village1)->addDefender($village2);
$outcome = $battle->performAttack();
// Save village changes cause of battle
$villageMapper->save($battle->getAttacker());
$villageMapper->save($battle->getDefender());
我有一大堆的DBTABLE PHP文件,我想所有的數據庫代碼住在...所以我的問題是:如果我映射對象只有真正使用的東西像,獲取並保存到數據庫?
感謝,大教堂
映射器充當數據庫表和對象之間的接口。所以你的戰鬥應該可以在你的mapper之外進行。 – Config 2012-04-12 20:23:51