我刚刚开始掌握 Zend Framework 2 数据库理论,已经使用版本 1 很长时间了。当业务逻辑需要一个表对象将操作推迟到另一个表对象时,我试图辨别使用许多表的“正确”方式。
在现有网关类中实例化不同的表类似乎是一个漫长而费力的过程。如果我使用与服务管理器工厂相同的流程,例如
$yourData = $myData['thisPart'];
$dbAdapter = $this->_myTableGateway->getAdapter();
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new TestObject());
$tbl = new TestTable(new TableGateway('tbl_name', $dbAdapter, null, $resultSetPrototype));
$tbl->insertSomeData($yourData);
...然后我想它会起作用,但服务管理器不应该在表类中可用。我可以使用工厂定义注入它,但这似乎不是一个好主意。
所以我想我的问题是,一个类(表示一个表并使用这种模式)使用不同的网关类将它的一些数据插入另一个表的最佳方式是什么。还是上面的方法是唯一/“正确”的方法?