Php 在非ZF2-MVC环境中使用ServiceManager

Php 在非ZF2-MVC环境中使用ServiceManager,php,zend-framework2,Php,Zend Framework2,我目前正在使用ZF2作为库 目前,我几乎是通过路由将数据库对象的注入级联到控制器中。显然,如果我首先开始使用zend framework 2,我会将DB存储到ServiceManager的一个实例中,并通过它发送 无论如何,我有一个充满静态方法的服务类。这些方法是基本的,它们所做的只是报告信息。他们几乎没有脑子。我有一个方法:UserService::getCurrentUser,用于返回包含当前用户信息的对象 然而,我要处理的一个问题是,在这个方法中,我正在这样做: $user = n

我目前正在使用ZF2作为库

目前,我几乎是通过路由将数据库对象的注入级联到控制器中。显然,如果我首先开始使用zend framework 2,我会将DB存储到ServiceManager的一个实例中,并通过它发送

无论如何,我有一个充满静态方法的服务类。这些方法是基本的,它们所做的只是报告信息。他们几乎没有脑子。我有一个方法:UserService::getCurrentUser,用于返回包含当前用户信息的对象

然而,我要处理的一个问题是,在这个方法中,我正在这样做:

    $user = new objects\user();
    $user->setUserId(self::currentUserId());


    $data = new \model\dao\users($database);
    $user = $data->loadUser($user);

    return $user;
我现在似乎有一个黑洞,因为我无法获取$database,在本例中,是Zend\Db\Adapter的一个实例


有没有办法堵住这个漏洞?

服务经理是不可知论者。为什么不将当前数据库实现定义为服务即服务。。。和您的用户类。我是依赖注入的粉丝。。。我甚至会使用服务管理器注入数据库凭据并创建数据库连接