Ben bir SOAP sunucu yazıyorum ve garip bir sorun vurdu.
İşte server.php gelen alakalı satırlar var
class MyHandler {
public function __construct() { ... }
public function __wakeup() { ... }
public function getPrice() { ... }
}
$server = new SoapServer("my.wsdl", array("soap_version" => SOAP_1_2));
$server->setClass('MyHandler');
$server->addFunction("getPrice");
$server->handle();
(PHP 5.3) lokal olarak bu test gayet iyi çalışıyor ve istekleri göndermek ve yanıtları almak mümkün değilim.
Benim geliştirme sunucusu (PHP 5.2.9) üzerine bu koyduğunuzda, ben bu hata mesajını alıyorum:
SoapServer::addFunction(): Tried to add a non existant function 'getPrice'
Apart onlar büyü değil ki aslında, bu çok kafa karıştırıcı.
O zamandan beri bu addFunction()
satırını değiştirerek soruna idare ettik:
$server->addFunction(SOAP_FUNCTIONS_ALL);
... Ve iyi çalışıyor! Tabii ki, $server->getFunctions()
bu __construct()
ve benim de sınıftan __wakeup()
fonksiyonları, iyi bir şey gibi görünmüyor hangi ekler gösterir incelenmesi.
Yanlış ne yaptım? Halı bomba burada tek yolu yaklaşım "tüm fonksiyonlar eklemek" mı?