ext-soap + unbounded elements + classmap + 1 element
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C
- Sterne
- 40.4k
- Forks
- 8.1k
- Ø Merge
- 2 T. 13 Std.
- Gemergte PRs (30 T.)
- 96
Beschreibung
Description
The WSDL for this class:
<xsd:complexType name="resLFAType">
<xsd:sequence>
<xsd:element name="resInfo" type="tns:resInfoType"></xsd:element>
<xsd:element name="resLFAsucces" type="tns:LFAsuccesType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
<xsd:element name="resLFAerror" type="tns:LFAerrorType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
while using this SOAP classmap:
protected static array $classMap = [
'resInfoType' => ResInfoType::class,
'resLFAType' => ResLFAType::class,
'LFAsuccesType' => LFASuccessType::class,
'LFAerrorType' => LFAErrorType::class,
];
while having this for ResLFAType:
<?php
class ResLFAType
{
public ?ResInfoType $resInfo;
/**
* @var LFASuccessType[]
*/
public array $resLFAsucces = [];
/**
* @var LFAErrorType[]
*/
public array $resLFAerror = [];
}
When the SOAP service is responding with multiple resLFAsucces and/or resLFAerror, everything works fine
BUT when the SOAP service is responding with exactly one of resLFAsucces, then i get this Exception:
Cannot assign LFASuccessType to property ResLFAType::$resLFAsucces of type array
it seems to understand when getting multiple entries to assign them correctly to the property,
but it fails when only getting one object.
PHP Version
PHP 8.2.6
Operating System
No response
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere den Fehler mit dem bereitgestellten WSDL, PHP classmap, der ResLFAType-Definition und einer Antwort, die genau ein resLFAsucces-Element enthält. Verfolge den ext-soap-Deserialisierungspfad für unbounded-Elemente und vergleiche die Behandlung eines Singleton mit mehreren Elementen. Erledigt ist die Aufgabe, wenn eine einzelne Antwort das typisierte Array ohne die Zuweisungsausnahme füllt und ein Regressionstest diesen Fall abdeckt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- php
- Bereich
- api
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100