【问题标题】:access entityManager in XML RPC web API在 XML RPC Web API 中访问 entityManager
【发布时间】:2013-08-19 13:45:20
【问题描述】:

你好 Stackoverflow 社区。​​p>

我目前正在使用 Zend Framework 2 开发 XML-RPc 服务器。 我有一个负责创建服务器的 ServiceController

class ServiceController extends AbstractActionController{

    public function xmlAction()
    {
        $this->handleXML();
        $response = $this->getResponse();
        return $response;
    }

    private function handleXML()
    {
        $xmlServer = new Zend\XmlRpc\Server();
        $xmlServer->setClass('Beam\Model\service\Service', 'service');
        echo $xmlServer->handle();
    }

}

ServiceClass 是我的 Webapi

class Service{

    /**
     * getAvailablePackages
     *
     * getAvailablePackages is responsible for returning all packages which reference a given licensenumber
     *
     * @param string $licenseNumber
     * @return String
     */
    public function getAvailablePackages($licenseNumber){

        //need to access the entityManager
        $em = $this->getServiceLocator->get('Doctrine\ORM\EntityManager'); 

        return "testresponse";
    }

}

XML RPC 服务器工作正常。我可以用客户端调用 getAvailablePackages 方法,我得到“testrespons”作为响应。 但是问题是,我想在 getAvailablePackages 中从我的数据库中选择一些数据,但我不确定如何在非 Controller 类中访问 entityManager。

有没有人知道如何解决这个问题?感谢您的回复。

【问题讨论】:

    标签: zend-framework2 xml-rpc entitymanager


    【解决方案1】:

    可能的解决方案是建立一个工厂。

    <?php
    namespace ....;
    
    use Zend\ServiceManager\ServiceLocatorInterface;
    use Zend\ServiceManager\FactoryInterface;
    
    class ServiceFactory implements FactoryInterface
    {
        public function createService (ServiceLocatorInterface $serviceLocator)
        {
            return new Service ($serviceLocator->get ('Doctrine\ORM\EntityManager'));
        }
    }
    

    因此,您将能够访问实体管理器。

    【讨论】:

    • 感谢您这么快回复。看起来很简单。还有一个问题。然后我将如何访问我的服务类中的实体管理器?
    • 您将 EntityManager 作为构造函数中的参数。我想$this-&gt;getEntityManager()$this-&gt;setEntityManager() 或者只是一个私人成员。你在课堂上如何做完全取决于你。
    • 我必须在模块类中将新的 Faktory 映射到我的服务类吗?
    猜你喜欢
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多