OK, so I should have tried it before responding.... Get_class_methods does include methods from parent classes. I've just tried the following example:
filename: DerivedClass.php <?php include 'SCA/SCA.php'; class ParentClass { public function method1() {} } /** * My service using extension * * @service * @binding.soap */ class DerivedClass extends ParentClass { public function method2() {} } ?> When I point my browser at http://...../DerivedClass.php?wsdl, it returns the following, which includes both methods. <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns:tns2="http://DerivedClass" xmlns:wsdl="http:// schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/ soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://DerivedClass"> <types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://DerivedClass" elementFormDefault="qualified"> <xs:element name="method2"> <xs:complexType> <xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="method2Response"> <xs:complexType> <xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="method1"> <xs:complexType> <xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="method1Response"> <xs:complexType> <xs:sequence> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> </types> <wsdl:message name="method2Request"> <wsdl:part name="method2Request" element="tns2:method2"/> </wsdl:message> <wsdl:message name="method2Response"> <wsdl:part name="return" element="tns2:method2Response"/> </wsdl:message> <wsdl:message name="method1Request"> <wsdl:part name="method1Request" element="tns2:method1"/> </wsdl:message> <wsdl:message name="method1Response"> <wsdl:part name="return" element="tns2:method1Response"/> </wsdl:message> <wsdl:portType name="DerivedClassPortType"> <wsdl:operation name="method2"> <wsdl:input message="tns2:method2Request"/> <wsdl:output message="tns2:method2Response"/> </wsdl:operation> <wsdl:operation name="method1"> <wsdl:input message="tns2:method1Request"/> <wsdl:output message="tns2:method1Response"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="DerivedClassBinding" type="tns2:DerivedClassPortType"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <wsdl:operation name="method2"> <soap:operation soapAction=""/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="method1"> <soap:operation soapAction=""/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="DerivedClassService"> <wsdl:port name="DerivedClassPort" binding="tns2:DerivedClassBinding"> <soap:address location="http://localhost/bugs/extends/ DerivedClass.php"/> </wsdl:port> </wsdl:service> </wsdl:definitions> <!-- this line identifies this file as WSDL generated by SCA for PHP. Do not remove --> Can you give this example a try and see what happens? Regards, Graham. On 2 Jan, 17:07, Graham Charters <[EMAIL PROTECTED]> wrote: > Hi, > > Sorry for not getting back to you sooner. Extends is not something > I'm aware of being supported. The SCA_AnnotationReader uses > get_class_methods to return the methods which the class may expose > (depends on whether they're public or are restricted using an > interface). I haven't tried it yet, but my guess is this doesn't > return methods defined by the parent class. If this is the case, then > this code would need updating to include parent classes when > determining the candidate methods to be exposed. > > I hope this helps. > > Graham. > > On 21 Dec 2007, 15:24, aouriques <[EMAIL PROTECTED]> wrote: > > > Hello, > > > I would like to know how can I use the "extends" for services. > > I have a Customer service that extends the User service. > > > /** > > .... > > * @service > > * @binding.soap > > * @locationhttp://mydomain.com/SOA/Customer.php > > */ > > class Customer extends User { > > ... > > > } > > > What should I add into the comments or what should I to do when using > > an extension? > > When I use the Customer alone it works fine, but when I use the > > Customer with the extension the WSDL is not generated. > > > Thank you! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "phpsoa" group. To post to this group, send email to phpsoa@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en -~----------~----~----~----~------~----~------~--~---