OOP Referenz auf eine andere Klasse

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

  • OOP Referenz auf eine andere Klasse

    Habe folgendes Problem und weiß nicht wie man es am besten angeht bzw. was wäre der beste Weg um so was zu lösen.

    Benutze Worpress und möchte von extern darauf zugreifen. Das geht mittels xml bei Worpress. Habe also folgendes in einer Datei:
    PHP-Code:
    require_once 'classes/wp_classes/class-IXR.php';
    $rpc = new IXR_Client('http://www.domain.com/xmlrpc.php');

    require_once 
    'classes/post.php';
    $post = new post();
    $authors $post->getAuthors(); 
    In der Klasse 'post' möchte ich jetzt mit $rpc weiterarbeiten. Wie sollte ich hier vorgehen?

  • #2
    PHP-Code:
    $post = new post($rpc); 
    Und dann im Konstruktor entsprechend setzen. Oder
    PHP-Code:
    $authors $post->getAuthors($rpc); 
    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      PHP-Code:
      class Post {
          protected 
      $rpc;

          public function 
      __construct(IXR_Client $rpc) {
              
      $this->rpc $rpc;
          }

      PHP-Code:
      $post = new Post($rpc); 

      Kommentar


      • #4
        dann war ich ja auf den richtigen Weg. Hatte folgendes:

        PHP-Code:
        protected $rpc;
            public function 
        __construct($rpc) {
                
        $this->$rpc $rpc;
            }
            
            function 
        getAuthors() {
            
        $result $rpc->query(...);
           ... 
        Nur bekomme ich diesen Fehler "[COLOR=#000000][FONT=Times New Roman][FONT=Times New Roman]Catchable fatal error: Object of class IXR_Client could not be converted to string in" und deshalb bin ich unsicher ob es so richtig ist.
        Habe die letzten Tage ein Buch über OOP gelesen aber eben noch keine Erfahrungen.
        $rpc ist ja ein Objekt und deshalb geht es nicht. Jetzt weiß ich nicht weiter...
        [/FONT][/FONT][/COLOR]

        Kommentar


        • #5
          $this->rpc, nicht $this->$rpc

          Kommentar


          • #6
            Super Anfängerfehler denke ich!
            Danke!!

            Mein Code sieht jetzt so aus. Falls ich noch was falsch habe bitte posten.
            PHP-Code:
            class Post {
                protected 
            $rpc;
                
                public function 
            __construct(IXR_Client $rpc) {
                    
            $this->rpc $rpc;
                }
                
                function 
            getAuthors() {
                
            $result $this->rpc->query(....); 
                
                    if(!
            $result) {
                        echo 
            'Error [' $this->rpc->getErrorCode() . ']: ' .       $this->rpc->getErrorMessage();
                        exit();
                    }
                
                return 
            $this->rpc->getResponse();
                } 

            Kommentar


            • #7
              Tendenziell sollte innerhalb von Methoden keine Ausgabe erfolgen. Sie sollten auch keinen exit-Aufruf enthalten.

              Anders gesagt: Eine Methode sollte im Normalfall nicht entscheiden dürfen, wann eine Ausgabe erfolgt oder wann das Script abgebrochen wird.

              Stichwort: Exception.

              - PHP: Exceptions - Manual

              Kommentar


              • #8
                Zitat von mermshaus Beitrag anzeigen
                Tendenziell sollte innerhalb von Methoden keine Ausgabe erfolgen. Sie sollten auch keinen exit-Aufruf enthalten.

                Anders gesagt: Eine Methode sollte im Normalfall nicht entscheiden dürfen, wann eine Ausgabe erfolgt oder wann das Script abgebrochen wird.

                Stichwort: Exception.

                - PHP: Exceptions - Manual
                OK Danke.
                Ist mir noch etwas zu heftig das ganze. Damit kann ich mich erst befassen wenn ich etwas besser geworden bin.

                Kommentar

                Lädt...
                X