![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 10 Dołączył: 8.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z biblioteka PEAR:SOAP w php 5 kiedy chcę przekazać jako argument zagnieżdżoną tablicę :
Biblioteka traktuje to tak :
Czyli traktuje $arguments['args'] jako array, a nie hash. Próbowałem to rozwiązać przekazując argumenty jako obiekt (z tym samym efektem). Wcześniej ta procedura śmigała na serwerze z PHP 4.3.11, po zmianie PHP na 5.2.0 zachowuje się tak jak wyżej. Udało mi się rozwiązać problem wykorzystując wbudowaną bibliotekę z PHP 5.2.0 :
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 487 Pomógł: 7 Dołączył: 7.01.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@Sh4dow - Twierdzę, że przyczyną błędu jest brak pliku WSDL. Może się mylę, ale korzystając z pliku WSDL unika się wielu problemów, tym bardziej, że SOAP to nie swawolny REST a definicje typów w XSD to podstawa.
Co do problemu - w pracy wykorzystujemy zdefiniowany typ dla każdej operacji, dzięki czemu nie ma problemów z ich obsługą. Swoją drogą SOAP:Array to jest lista, żeby w PHP dostać hash trzeba dać complexType:
Listę można zrobić w bardzo prosty sposób, bez korzystania z dodatkowych przestrzeni nazw:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 06:59 |