Soap client error a odchyceni erroru

crookslovacko
Člen | 75
+
0
-

Dobry den, potreboval bych radu..opět.

Připojuji se ke vzdálenému klientu přes soap a posílám tam data, bohužel pokud jsou data ve špatném formátu, či je jiná chyba laděnka napíše

SoapFault
Failed to validate attributes. See detail.

Já mám funkci dle návodu takto:

public function sendzasilkovna($data){
         $gw = new \SoapClient("http://www.zasilkovna.cz/api/soap-php-bugfix.wsdl");
         $apiPassword = "...";
         // var_dump($gw->packetAttributesValid($apiPassword,$data));
         try {
             $gw->createPacket($apiPassword,$data);

         } catch (SoapFault $e) {
            var_dump('Chyba: '. $e->getMessage());
            bdump($e);

        }
    }

Jenže Laděnka mi vypíše pouze soap error na řádku $gw->createPacket($apiPassword,$data);
ale už mě to dál nepustí na catch.
Omlouvám se pokud je to blbá otázka ale už nevím jak se dostat k výpisu erroru, protože scipnout mě to nenechá a Laděnka nic nevypsala ani v detailech.

Tomáš Vodička
Člen | 28
+
+2
-

Ahoj,

Hádal bych chybějící lomítko u SoapFault

catch (\SoapFault $e)
crookslovacko
Člen | 75
+
0
-

Moc děkuji, tak toto mi nedošlo a ještě asi jedna trivialita ale jak se dostanu k array v detailu,
bdump($e->detail); mi teď hodí

stdClass #7152
PacketAttributesFault => stdClass #7dcc
attributes => stdClass #6faa
fault => array (4) [ ... ]

jak se dostanu k fault..Ne jen v laděnce..

Editoval crookslovacko (12. 7. 2019 14:42)

Zapp3
Člen | 8
+
-1
-

Tracy má omezené do jak velkého zanoření dumpuje, v základu je to myslím 3, stačí to zvětšit přes

\Tracy\Debugger::$maxDepth = 5; // případně víc

bdump($e->detail);

To samé dělá s delšími řetězci

\Tracy\Debugger::$maxLength = 200; //je to na počet znaků, základ je 150

Editoval Zapp3 (12. 7. 2019 15:03)

crookslovacko
Člen | 75
+
0
-

Zapp3 napsal(a):

Tracy má omezené do jak velkého zanoření dumpuje, v základu je to myslím 3, stačí to zvětšit přes

\Tracy\Debugger::$maxDepth = 5; // případně víc

bdump($e->detail);

To samé dělá s delšími řetězci

\Tracy\Debugger::$maxLength = 200; //je to na počet znaků, základ je 150

Diky to urcite pomuze, ale jeste moc prosim nedochází mi jak se dostat k array fault..
neco jako: $fault = ($e->detail…)

stdClass #7152
PacketAttributesFault ⇒ stdClass #7dcc
attributes ⇒ stdClass #6faa
fault ⇒ array (4) [ … ]

Zapp3
Člen | 8
+
-1
-

Sorry špatně jsem to pochopil

bdump($e->detail->fault);