我在symfony2中遇到了本机php SoapServer的问题。 SoapServer使用" UserService" symfony2中的Service-Class,应该通过注入symfony2 EntityManager进行实例化,以便我可以访问我的" UserRepository"。
澄清:
皂服务器:
$oSOAPServer = new \SoapServer('/path/to/wsdl');
$oSOAPServer->setClass("my\Namespace\UserService");
$oSOAPServer->handle();
服务:
use \Doctrine\ORM\EntityManager as EntityManager;
class UserService
{
protected $em;
public function __construct(EntityManager $em) {
$this->em = $em;
}
...
问题是:SoapServer始终返回内部服务器错误。 服务本身直接在symfony2中调用。 甚至可以在SoapServer调用/实例化时注入EntityManager吗?
提前致谢!
马丁
答案 0 :(得分:0)
您可以使用SoapServer::setObject()
而不是使用SoapServer::setClass()
,并在以下位置传递您的服务:
$oSOAPServer = new \SoapServer('/path/to/wsdl');
$oSOAPServer->setObject($container->get('my_service'));
$oSOAPServer->handle();
Symfony文档中记录了实施soap服务器:How to Create a SOAP Web Service in a Symfony2 Controller
此外,如果您只需要一个存储库,请不要注入整个实体管理器。注册您的repository as a service并将其注入您的服务。