PHP の SoapClient を使用し、PHP 8.1 と互換性のあるライブラリを作成しているときに、次の問題に遭遇しました:
SoapClient のすべてのプロパティは、以前はパブリックでしたが、現在はプライベートです。
そのため、最後の SOAP エラー ($soapClient->__soap_fault
) を取得するようなことはもう不可能になります。しかし、何か問題が発生した場合、SoapClient のほとんどのメソッドは null を返すため、問題の内容を知る唯一の方法は、アクセスできなくなった __soap_fault
を取得することです。
SoapClient プロパティにアクセスできない場合、メソッド __doRequest
を使用するにはどうすればよいですか?
古い
SoapClient
ドキュメントを見ると、プロパティに直接アクセスすると常にエラーになるようです - php7.2 の場合、たとえばバックホール マシンによっては、__soap_fault
がまったくドキュメント化されていません(https:///web.archive.org/web/20171211100753/http://us3.php.net/manual/en/class.soapclient.phpを参照)ドキュメントの説明は次のとおりです:
私が言いたいのは、(
$options['例外'] => true
を SoapClient コンストラクターに渡すことによって) 例外を有効にし、これらの例外をtry/catch# # #それに応じて。これで解決しない場合は、正しく処理されなかった特定のエラーを含む新しい質問の方が役立つ可能性があります。