加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读