我使用zend2教程中的默認示例在module.php中設置表格,但在我的項目中,我有很多表格,所以我的module.php是太大了。在Module.php中配置表格的最佳方式 - Zend 2
這是我的默認配置例1:
'UsersTableGateway' => function ($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Users());
return new TableGateway('users', $dbAdapter, null, $resultSetPrototype);
},
'Application\Model\UsersTable'=>function ($sm){
$tableGateway = $sm->get('UsersTableGateway');
return new UsersTable($tableGateway);
},
我的問題是,如果我把UserTableGateway配置到應用程序\型號\用戶表這樣的實例2:
'Application\Model\UsersTable'=>function ($sm){
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Users());
$tableGateway = new TableGateway('users', $dbAdapter, null, $resultSetPrototype);
return new UsersTable($tableGateway);
},
此方法效果對我來說,在我的項目中沒有任何變化,不顯示任何錯誤,項目保持正常工作。
所以,教程中的方式是說要在單獨數組上設置UserTableGateway?
如果我更改默認配置(上面的示例1),像上面的示例2那樣設置Application \ Model \ Table中的所有配置,是配置tablesGateway的好方法嗎?是一個很好的實踐?
謝謝。
謝謝!幫助很多。 – rafaelphp
僅僅爲了解,在將服務配置爲工廠時,我們必須在類中使用__construct()方法,如果您將其設置爲可調用的方法,那麼您將使用__invoke()。 – rafaelphp
@rafaelphp工廠我們有兩個選擇。我們可以實現'FactoryInterface'並使用'createService(ServiceLocatorInterface $ sl)'或我的例子中使用的invoke方法。我隨之而去,因爲它更簡單。 – Ankh