Мне сложно успеть на проблему аутентификации SoapClient. Когда мой код выполняется, Laravel заявляет, что он бросает ErrorException, но я не могу его поймать, независимо от того, какой код я использую. Я помещаю Laravel в случае, если какая-то магия происходит где-то, о чем я не знаю, потому что App :: error () еще раз вызовет эту ошибку.
try { $client = new SoapClient( $this->serviceUrl . $this->clients[$clientName], array( 'login' => $this->username, 'password' => $this->password, 'exceptions' => true, ) ); } catch (SoapFault $e) { die('soapfault never fires!'); } catch (Exception $e) { die('exception won\t t'); } catch (ErrorException $e) { die('error exception also doesn\'t error'); }
Согласно Laravel, возникает исключение ErrorException, но приведенный выше код не улавливает его.
ErrorException SoapClient::SoapClient(https://control.akamai.com/nmrws/services/RealtimeReports?wsdl) [<a href='soapclient.soapclient'>soapclient.soapclient</a>]: failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized
Добавить обратную косую черту перед типами исключений (например, Exception
становится \Exception
).
Они принадлежат глобальному пространству имен. Ваш код пытается поймать исключения в используемом в настоящее время пространстве имен, которое не должно быть таким же, как глобальное.