php – ZF2 – ServiceManager注入84个表……乏味
发布时间:2020-12-13 22:45:13 所属栏目:PHP教程 来源:网络整理
导读:几个月前,我在关于ZF2在Beta 1期间注入DI的表格中做了另一个关于这个问题的线索,然后发现它确实不可能.现在ZF2已经发布为版本2.0.0而ServiceManager默认为而不是DI我想我现在有相同的问题我正在重构. 我有84个桌子需要DbAdapter注入它们,我确信必须有一个更
几个月前,我在关于ZF2在Beta 1期间注入DI的表格中做了另一个关于这个问题的线索,然后发现它确实不可能.现在ZF2已经发布为版本2.0.0而ServiceManager默认为而不是DI我想我现在有相同的问题我正在重构.
我有84个桌子需要DbAdapter注入它们,我确信必须有一个更好的方法,因为我正在复制自己. public function getServiceConfig() { return array( 'factories' => array( 'accountTable' => function ($sm) { $dbAdapter = $sm->get('ZendDbAdapterAdapter'); $table = new ModelDbTableAccountTable($dbAdapter); return $table; },'userTable' => function ($sm) { $dbAdapter = $sm->get('ZendDbAdapterAdapter'); $table = new ModelDbTableUserTable($dbAdapter); return $table; },// another 82 tables of the above ) ) } 使用EventsManager和ServiceManager,我不知道我在获取应用程序的实例/资源方面的立场. 谢谢,Dom 解决方法
通过这样的大量注入,您最好创建一个服务管理器initalizer,然后实现像DbAdapterAwareInterface这样的接口.如果你想看到这个想法,请看一下zf2代码库中的EventManagerAwareInterface.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |