Я должен предоставить функцию через SOAP, которая называется «эхо». Я не знаю, как это сделать, потому что эхо уже перезагружено PHP. Там в любом случае?PHP: Предоставьте SOAP-метод под названием «echo»
BTW: Я не могу использовать rename_function или override_function. Pecl-Apd недоступен в системе.
Вот код-материал:
PHP:
$soap_server = new SoapServer('service.wsdl');
$soap_server->setClass('TestClass');
$soap_server->handle();
из service.wsdl:
<message name="echo">
<part name="parameters" element="tns:echo"/>
</message>
[...]
<portType name="MyService">
[...]
<operation name="echo">
<input message="tns:echo"/>
<output message="tns:echoResponse"/>
</operation>
[...]
</portType>
<binding name="MyServicePortBinding" type="tns:MyService">
[...]
<operation name="echo">
<soap:operation soapAction="urn:ping"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
[...]
</binding>
мыльный клиент не находится под моим контролем. Я должен реализовать данный wsdl-файл. Но в моем классе всегда «эхо» вызывается не «ping» и приводит к сообщению об ошибке PHP Fatal error: Function 'echo' doesn't exist in <file-path-and-name>
.
Мой TestClass выглядит следующим образом:
<?php
ini_set("soap.wsdl_cache_enabled", "0");
class TestClass {
public function __construct()
{
}
[...]
public function ping($inputString)
{
return $inputString;
}
}
?>
Можете ли вы дать некоторую предысторию вопрос - это, например, домашнее задание на исследование? Я предполагаю, что вы хотите использовать SOAP-метод, называемый 'echo', а не переопределять основные функции PHP? :) – halfer
@halfer FYI Я удалил свой ответ, потому что ни один из моих подходов не работал в любом случае :(- хотя вы также можете быть правы, и я, возможно, неправильно интерпретировал этот вопрос. – DaveRandom
@halfer да извините, мне нужен SOAP-метод под названием «эхо», Я думаю, что не имеет значения, как это имя функции. – virusbrain