philetaylor / service-locator-factory

在 zf2 的任何地方静态获取服务定位器(虽然这是不好的做法,但有时需要这样)

这个包的官方仓库似乎已消失,因此该包已被冻结。

dev-master 2015-01-14 20:41 UTC

This package is auto-updated.

Last update: 2023-04-06 11:54:46 UTC


README

这是 fezfez/ServiceLocatorFactory 的长期分支,因为这个项目不再维护...

通过调用此静态工厂,您可以在应用的任何地方获取 ServiceManager。虽然这样做可能非常不规范,并且没有使用完整的依赖注入(DI),但有时你不得不这么做。

可以使用 composer 安装 - 请参阅 https://packagist.org.cn/packages/philetaylor/service-locator-factory

<?php

namespace Corp\News;

use Corp\News\NewsDAO;
use Zend\ServiceManager\ServiceManager;
use Corp\ServiceLocator\ServiceLocator;

class NewsDAOFactory
{
    private function __construct()
    {
        
    }

    /**
     * @return \Corp\News\NewsDAO
     */
    public static function getInstance()
    {
        $sm = ServiceLocatorFactory::getInstance();
        $em = $sm->get('doctrine.entitymanager.orm_default');

        return new NewsDAO($em);
    }
}