Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP-PEAR: Services_Webservice: Klasseninstanzen zurückliefern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP-PEAR: Services_Webservice: Klasseninstanzen zurückliefern

    Guten Tag,

    ich soll für einen Kunden einen SOAP-Webservice mit PHP bereitstellen. Dieser soll per Methodenaufruf getClass die Instanz einer Klasse zurückliefern.

    Erstmal soweit kein Problem: Dem Kunden geht es jedoch darum, die zurückgelieferte Klasseninstanz direkt verwenden zu können. Hier mal die Beispielklasse die zurückgeliefert werden soll:

    PHP-Code:
    <?php

    class Men
    {
        
    /**
        *
        * Update the field firstName
        *
        * @param string
        * @return void
        *
        */
        
    public function setFirstName($newFirstName)
        {
            
    $this->firstName $newFirstName;
        }

        
    /**
        *
        * Fetch the field firstName
        *
        * @param void
        * @return string
        *
        */
        
    public function getFirstName()
        {
            return 
    $this->firstName;
        }

        
    /**
        *
        * Update the field lastName
        *
        * @param string
        * @return void
        *
        */
        
    public function setLastName($newLastName)
        {
            
    $this->lastName $newLastName;
        }

        
    /**
        *
        * Fetch the field lastName
        *
        * @param void
        * @return string
        *
        */
        
    public function getLastName()
        {
            return 
    $this->lastName;
        }
    }

    ?>
    Nun soll diese Klasse ausgeliefert werden:

    PHP-Code:
    /**
    *
    * Fetch an instance of the class 'Student'
    *
    * @param void
    * @return Student
    *
    */
    public function getClass()
    {
        
    $men = new Men();
        
    $men->firstName "Max";
        
    $men->lastName "Mustermann";
        return new 
    SoapVar(
            
    $men,
            
    SOAP_ENC_OBJECT,
            
    "Men",
            
    "tns:Men"
        
    );

    Jetzt sollen beim Client sofort die bereitgestellten Methoden, wie z.B. getFirstName() laufen. Dies ist definitiv auch möglich. Es handelt sich bei der Anwendung, die den Webservice nutzt, um einen Flex-Client. Hierbei soll es möglich sein, Klasseninstanzen direkt in das für Flex verwendete ActionScript zu mappen.

    Das Problem besteht darin, dass die zurückgelieferte Klasseninstanz die Methoden sozusagen nicht enthält.

    Kenn sich da jemand aus?

    MfG
    DeeDee0815


  • #2
    Sehr unklar, was Du meinst.
    Willst Du einen einen Webservice (einen SOAP-Server) erstellen, der die Methoden get/setFirstName und get/setLastName nach aussen zur Verfügung stellt?

    Kommentar


    • #3
      Vielleicht habe ich mich nicht klar genug ausgedrückt:

      ich soll für einen Kunden einen SOAP-Webservice mit PHP bereitstellen. Dieser soll per Methodenaufruf getClass die Instanz einer Klasse zurückliefern.
      Damit meinte ich keineswegs die bereitstellung einfacher Methoden als Webservice: Das ist kein Problem.

      Folgendes Beispiel.

      Beim Server:
      Code:
      $class = new MyClass();
      function getTheClassInstance() {
          return $class;
      }
      Die Funktion getTheClassInstance wird dann vom Webservice bereitgestellt. Der SOAP-Server wandelt die gesamte Klasseninstanz, inklusive ihrer Methoden, in eine XML-Datei um. Diese kann dann vom Client wiederum in eine entsprechende Sprache übersetzt und direkt verwendet werden.

      Beim Client:
      Code:
      $class = getTheClassInstance();
      $class->method(args);
      Dieses ungewöhnliche Vorhaben ist mit SOAP und FlexClients möglich. Die Frage ist, ob das auch mit PHP als Server läuft. Mit dem von mir verhassten ASP von MS geht es jedenfalls: Und zwar nicht wie bei Microsoft üblich, nur mit Microsoft basierter ClientSoftware. Meine Frage ist, ob ich nun PEARS Webservice-Package dafür nehmen kann, ob es das unterstützt, oder ob ich mir den Webservice selbst mit den bei PHP mitgelieferten Klassen basteln muss. Also auch die WSDL-Datei selber schreiben muss.

      MfG
      DeeDee0815

      Kommentar


      • #4
        Das weiß ich nicht.

        Kommentar


        • #5
          Das Framework QCodo bittet dir einen Generator, der aus einer Datenbank-Tabelle zwei Klassen generiert. Eine davon hat auch eine SOAP-Schnittstelle, um sich selbst zu exportieren. Vielleicht hilft dir das ja:

          qcodo soap - Google-Suche
          "Mein Name ist Lohse, ich kaufe hier ein."

          Kommentar

          Lädt...
          X