OOP Referenz auf eine andere Klasse

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


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

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

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

      Comment


      • #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]

        Comment


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

          Comment


          • #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();
                } 

            Comment


            • #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

              Comment


              • #8
                Originally posted by mermshaus View Post
                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.

                Comment

                Working...
                X