2

我的 Zend Framework 2 应用程序中有一个服务层。在这一层,我有一个所有服务类都扩展的抽象基类,如下所示。

基类:

namespace User\Service;

use Zend\ServiceManager\ServiceManagerAwareInterface;
use Zend\ServiceManager\ServiceManager;

class AbstractService implements ServiceManagerAwareInterface {
    protected $serviceManager;

    public function setServiceManager(ServiceManager $serviceManager) {
        $this->serviceManager = $serviceManager;
    }

    public function getServiceManager() {
        return $this->serviceManager;
    }
}

服务等级:

namespace User\Service;

use User\Service\AbstractService;

class UserService extends AbstractService {
    public function register($id, $username, $password) {
        /* ... */
    }
}

问题是基类将在我的模块中使用(每个模块都有一个服务层),我想知道存储它的最佳位置在哪里。我的数据库层有完全相同的场景。在我的脑海中,我能想到几个可能性:

  1. 每个模块中的副本。不是一个优雅的解决方案,也不容易维护。
  2. “应用程序”模块中的一个副本,每个模块都使用这个副本。创建跨模块依赖项。
  3. vendor目录中,因此在任何模块目录之外。我对 Composer 还不太熟悉,但我想我可以将它作为依赖项添加到那里?

所以基本上问题是在哪里放置几个模块使用的类。让它发挥作用并不难,但问题是尽可能以最好的方式做到这一点。

4

1 回答 1

4

我认为一个好的做法是将你所有的基类和函数单元到一个独立的公共模块中,你的其他模块将依赖于这个公共模块。

有很多参考资料你可以看看:

有了公共模块后,可以通过composer定义模块依赖关系,然后只需一行命令即可安装所有依赖模块。

于 2013-01-18T03:34:52.733 回答