Ich möchte die Antwort von einem \ SoapClient mit XML aus einer Datei spotten.Mock SoapClient Antwort von lokalen XML
Wie kann ich ein stdClass-Objekt erstellen, wie der SoapClient aus einer Datei zurückgibt.
Der Client umschließt bereits den SoapClient, sodass die Antwort leicht gespiegelt werden kann.
Meine Mock ist wie folgt:
$soapClient->expects($this->once())
->method('call')
->will(
$this->returnValue(
simplexml_load_string(
file_get_contents(__DIR__ . '/../../../Resources/file.xml')
)
)
);
Aber das gibt SimpleXML und nicht stdClass.
Update:
Die vorgeschlagene json_encode/json_decode Hack scheint nicht Attribute zu handhaben als die Soapclient sie zurück:
Soapclient:
object(stdClass)[4571]
public 'Lang' => string 'de' (length=2)
public 'Success' => boolean true
Hack:
object(stdClass)#27 (3) {
["@attributes"]=>
object(stdClass)#30 (2) {
["Lang"]=>
string(2) "de"
["Success"]=>
string(4) "true"
try this: '$ my_std_class = json_decode (json_encode ($ my_simplexmlelement));' – Matteo