現在、3 つのデータベース テーブルにアクセスする必要がある ZF2 モジュールがあります。他のモジュールがこれらのテーブルにアクセスする必要はありません。
だから私の質問は(パフォーマンスも念頭に置いてください)私が行ってきたように、実際にModule.phpに工場を追加する必要があります:
/**
* Service Configuration
*
* @return array
*/
public function getServiceConfig()
{
return array(
'invokables' => array(
'Login\Service\Authenticate' => 'Login\Service\Authenticate',
'Login\Service\Oauth' => 'Login\Service\Oauth'
),
'factories' => array(
'Login\Form\Login' => function () {
$form = new Form\Login();
$form->setInputFilter(new FormFilter\Login());
return $form;
},
'Login\Model\GaclEmployeePermission' => function ($sm) {
return new Model\GaclEmployeePermission($sm->get('OTWebsoft\Db\Adapter\Master'), $sm->get('OTWebsoft\Db\Adapter\Slave'));
},
'Login\Model\Passport' => function ($sm) {
return new Model\Passport($sm->get('OTWebsoft\Db\Adapter\Master'), $sm->get('OTWebsoft\Db\Adapter\Slave'));
},
'Login\Model\PassportLog' => function ($sm) {
return new Model\PassportLog($sm->get('OTWebsoft\Db\Adapter\Master'), $sm->get('OTWebsoft\Db\Adapter\Slave'));
}
)
);
}
次に、次のことを行う抽象クラスがあります。
/**
* Table GaclEmployeePermission
*
* @return \Login\Model\GaclEmployeePermission
*/
protected function getTableGaclEmployeePermission()
{
return $this->getServiceManager()->get('Login\Model\GaclEmployeePermission');
}
または、Module.php から構成を削除し、抽象クラスでこれを行う必要があります。
/**
* Table GaclEmployeePermission
*
* @return \Login\Model\GaclEmployeePermission
*/
protected function getTableGaclEmployeePermission()
{
return new GaclEmployeePermission($this->getMasterAdapter(), $this->getSlaveAdapter());
}
どちらもまったく同じように機能するようです。しかし、パフォーマンスに関しては、どれをお勧めしますか? これら 3 つのテーブルは、このモジュール以外の他のモジュールからアクセスする必要はありません。