我正在使用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