0

symfony2 のネイティブ php SoapServer に問題があります。SoapServer は symfony2 で「UserService」サービス クラスを使用します。これは、「UserRepository」にアクセスできるように、注入された symfony2 EntityManager でインスタンス化する必要があります。

明確にするために:

石鹸サーバー:

$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 を注入することさえ可能ですか?

前もって感謝します!

マーティン

4

1 に答える 1

0

を使用する代わりに、次のようにサービスを使用して渡すSoapServer::setClass()ことができます。SoapServer::setObject()

$oSOAPServer = new \SoapServer('/path/to/wsdl');
$oSOAPServer->setObject($container->get('my_service'));
$oSOAPServer->handle();

SOAPサーバーの実装については、Symfony のドキュメントに記載されています: How to Create a SOAP Web Service in a Symfony2 Controller

また、リポジトリのみが必要な場合は、エンティティ マネージャー全体を注入しないでください。リポジトリをサービスとして登録し、サービスに注入します。

于 2014-05-02T18:52:19.473 に答える