Ben Zend_Soap üzerinden bir web hizmeti sağlayan bir uygulama ilk kez PHP ad kullanıyorum, ve ben otomatik bulma özelliği ile bir sorun haline çalıştırıyorum. Ben böyle bir kod bir şey var:
$autodiscoverObj = new Zend_Soap_AutoDiscover();
$autodiscoverObj->setClass('My\\Namespace\\MyClass');
Ve ben bu gibi hataları alıyorum, "Zend_Soap_Wsdl_Exception: Bir nesne ya da nereye sınıf bulunamadı olmayan bir karmaşık türü Sınıfım eklenemez".
Ben gibi,) değer (setClass bir ad kısmı kapalı bırakırsanız:
$autodiscoverObj->setClass('MyClass');
'AttachClass geçirilen Geçersiz sınıf veya nesne (), bu yüzden ben yaptım ad dahil olmak üzere doğru olduğunu görünür: I ", Zend_Server_Reflection_Exception olsun.
WSDL durum düzeltmek için çalışırken, fark ettim ki ne olursa olsun ben () yöntemi, benim autoload işlevi sans ad sınıf geçme gibi bir Zend Framework setClass benim sınıf başvuru nasıl. Biraz daha kazma, ben isteğe bağlı bir isim parametresi setClass () kendisi ile başlayan çerçevesinde yöntemler zinciri görmek, ama (onlar bile "Kullanılmıyor" olarak etiketlenmiş) kullanmayın.
Benim sonraki düşünce olduğunu Zend_Soap_Server sınıfta mevcut olmasına rağmen, bu Zend_Soap_AutoDiscover sınıfta mevcut değil, IMO kesin bug that's already been filed by someone else, setClassmap () kullanımı idi, ama.
Zend framwork, ve özellikle, aynı SOAP bileşeni, ad alanları ile sadece uyumsuz? Eğer değilse, nasıl başka ad sınıfları kullanan bir SOAP hizmeti oluşturabilirim?
Sürüm bilgisi:
PHP: 5.3.0 Zend Framework: 1.9.8