不确定我是否最近在stackoverflow上问了太多问题,但我觉得Zend Framework文档是令人震惊的。看起来这些例子非常模糊,并不像真实世界中使用的那样。他们鼓励使用框架整理和组织代码,然后不提如何应该遵循:D使用Zend_Model_Mappers和Zend_Db_Table_Abstract的单个模型的多个表格
所以无论如何!在我目前对面的Zend迁移旧的应用程序,我有一个叫做功能寄存器,如:
function register($username, $password, $email, $etc) {
// Do stuff
// Insert $email and other stuff into `user_profile` table
// Insert $username and $password into the `user` table
}
但现在与Zend ......我一直在关注他们的留言教程入门和我有以下型号:User
,UserMapper
。 而我有我的数据库中的每个表的DbTables像这样:User
,UserProfile
。
所以我喜欢你注册时的功能,你建立一个用户对象,然后在映射器上调用save
,它将对象写入数据库,但事情是,其中一些用户片段进入用户配置文件表。在留言板应用程序的例子是,内UserMapper你只能在一个表(用户)拉和写入...好我的意思是我可以这样做:
// Insert or Update data to user table
$this->getDbTable()->insert($user_data);
// Insert or Update User Profile data
$this->setDbTable('UserProfile');
$this->getDbTable()->insert($user_profile);
但是,这似乎只是一个位哈克。处理多个表的实际推荐方式是什么?
此外,如果我有自定义查询...我是否打算将它们放入创建的DbTable
类或UserMapper
类中?我并没有真正看到扩展DbTable的实际用途。所有的指南都说要做到这一点,它并没有真正解释为什么你这样做的好处/原因/用途。
感谢,大教堂
[“青睐 '的对象组成' 过'类继承'。“ (四人帮1995:20)](http://en.wikipedia.org/wiki/Design_Patterns) – vascowhite
所以我猜你的意思,而不是让用户 - >保存()只抓住和处理一个DbTable用户',它应该在一个函数中使用多个表?所以我做我说的话感觉有点乱。设置dbtable('user')并更新它,然后设置dbtable('userprofile')并执行任务 –
你对自定义查询做了什么样的事情? – ChrisA