Zugriff auf externe Funktion

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

  • Zugriff auf externe Funktion

    Hallo Leute =)
    ich bräuchte mal dringend eure Hilfe in PHP. Ich habe eine Klassendatei gehabt in der einige Funktionen und die Main
    drin stand. Jetzt wollte ich aus dieser Klasse jeweils zwei erstellen. Das heißt.. zwei Funktionen der alten
    Klasse sollen aus dieser herausgenommen werden und in die neue Klasse eingefügt werden.
    Trotzdem soll die Main nachwievor auf diese Funktionen zugreifen können. In meiner alten klasse habe ich
    die Funktionen einfach mit: $this -> callWebservice($post['gpnummer'], $ignoreClosed).... aufgerufen..
    Jetzt stehen diese Funktionen aber extern in einer neuen klasse(neue datei), wodurch ein zugriff mit diesem Befehl nicht möglich ist.(Anmerkung: die dateien liegen im selben Verzeichnis!)
    Jetzt habe ich mit require_once die neue Klasse eingebunden, was auch zu funktionieren scheint... Das Problem ist
    halt jetzt nur, wie ich in der Main den Zugriff auf die neue Klasse herstelle (Funktionsaufruf).
    Wäre echt toll von euch, wenn mir einer dabei helfen könnte!!
    Vielen Dank schoneinmal im vorraus!

    LG

  • #2
    Mach dich doch mal über Klassenvererbung schlau.
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      .

      mmmhh das habe ich schon die ganze Zeit gemacht, aber ich verstehe es
      trotzdem irgendwie nicht so 100%ig :/... Jetzt dachte ich, dass ihr mir vielleicht sagen könnt wie ich auf externe Funktionen zugreifen kann.. Die Klasse habe ich ja schon mit require eingebunden... Aber was muss ich jetzt machen?

      LG

      Kommentar


      • #4
        Entweder erweitert die eine Klasse die andere, oder du musst eine Klasse in der anderen Instanzieren um darauf zugreifen zu können. Dazu müsste man erst mal wissen was du dir da gebastelt hast.

        Code?
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          .

          mit dem code kann ich dir gerade leider nicht dienen, da ich von unterwegs aus frage... aber ich kann dir sagen wie. Die zweite Klasse ist nur ein Teil der ersten Hauptklasse (in der auch die Main ist). Das heißt, aus der zweiten Klasse werden nur die Funktionen in der Main benutzt. Somit muss halt irgendwie die Main wissen, wo die Funktion liegt.. Dazu habe ich ersteinmal mit require_once(t3lib_extMgm::extPath('ilc_buglist').'pi1/class.cw_adn.php'); die zweite Klasse (class.cw_adn.php) eingebunden... aber wenn ich jetzt in der Main sage
          $this -> callWebservice($username,$ignoreClosed); funktioniert das natürlich nicht so einfach!..
          Aber wie greife ich jetzt darauf zu?

          LG

          Kommentar


          • #6
            Typo3 ist ein gaaanz anderes Blatt
            Da musst du schon etwas genauer werden.

            Normaler weise kannst du mit

            PHP-Code:
            class foo extends bar
            {
             
            // usw

            Innerhalb der Klasse Foo auf die Methoden von Bar zugreifen. (Kurz gesagt)

            Du kannst ebenfalls eine Klasse in einer anderen Instanzieren.


            PHP-Code:
            class foo {
              private 
            $class
              
              
            function __construct() {
                  
            $this->class = new AndereKlasse;
              }

              public function 
            blah()
              {
                   
            $this->class->methodeDerAnderenKlasse();
              }

            Ich verstehe aber den ersten Satz nicht. Dringend Hilfe und dann bist du nicht in der Lage Code zu liefern ?
            Zuletzt geändert von hhcm; 08.07.2009, 14:31.
            gruss Chris

            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

            Kommentar


            • #7
              .

              mmhh jaa tut mir Leid
              alsoo:
              Es gibt zwei Klassen(zwei extra Dateien im selben Verzeichnis):
              1.Klasse mit der Main (Hauptklasse)
              2.Klasse mit den Funktionen

              Die Main der 1. Klasse greift auf die Funktionen der 2. zu und führt sie aus.

              In der ersten Klasse steht auch: require_once(t3lib_extMgm::extPath('ilc_buglist').'pi1/class.cw_adn.php');
              zum einbinden der 2.Klasse.

              class.cw_adn.php ist die 2.Klasse mit den Funktionen die ausgeführt werden sollen.

              Hoffe es ist jetzt etwas verständlicher

              LG

              Kommentar


              • #8
                Öh.. Ich denke mein Edit und dein Post haben sich überschnitten.
                gruss Chris

                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                Kommentar


                • #9
                  .

                  aso
                  gut danke!
                  Ich werde es mal so versuchen!

                  LG

                  Kommentar


                  • #10
                    .

                    habe jetzt unten noch mein Quelltextausszug, der hoffentlich das Problem erklärt..

                    LG
                    Zuletzt geändert von RaisedFist; 08.07.2009, 15:48.

                    Kommentar


                    • #11
                      Quelltext

                      soo hier ist mein Quelltextbeispiel:

                      PHP-Code:
                      require_once(t3lib_extMgm::extPath('ilc_buglist').'pi1/class.cw_adn.php');
                      class 
                      tx_ilcbuglist_pi1 extends tslib_pibase {

                          var 
                      $prefixId      'tx_ilcbuglist_pi1';        // Same as class name
                          
                      var $scriptRelPath 'pi1/class.tx_ilcbuglist_pi1.php';    // Path to this script relative to the extension dir.
                          
                      var $extKey        'ilc_buglist';    // The extension key.
                          
                      var $pi_checkCHash true;

                          var 
                      $content null;

                      function 
                      main($content$conf) {
                              
                      $TYPO3_CONF_VARS['EXT']['noEdit'] = 0;
                              
                      $this->conf $conf;
                              
                      $this->pi_setPiVarDefaults();
                              
                      $this->pi_loadLL();
                              
                      $post t3lib_div::_POST();
                              
                      $get t3lib_div::_GET();

                              
                      //check if user is logged in
                              
                      if ($username != '') {
                                  
                      //back button pushed
                                  
                      if (isset($post['backButton'])) {
                                      
                      $content $this -> displayElements('back'10);
                                  }
                      //next button pushed
                                  
                      elseif (isset($post['nextButton'])) {
                                     
                      $this -> callWebservice($username,$ignoreClosed); //Hier soll die    Funktion aufgerufen werden( diese steht in der zweiten Klasse!)
                                  
                      }
                             }

                      Der Code ist hier nicht vollständig aufgelistet... aber man müsste eigentlich sehen, wo mein Problem ist

                      LG
                      RaisedFist

                      Kommentar


                      • #12
                        Zitat von RaisedFist Beitrag anzeigen
                        soo hier ist mein Quelltextbeispiel:

                        PHP-Code:
                        require_once(t3lib_extMgm::extPath('ilc_buglist').'pi1/class.cw_adn.php');
                        class 
                        tx_ilcbuglist_pi1 extends tslib_pibase {

                            var 
                        $prefixId      'tx_ilcbuglist_pi1';        // Same as class name
                            
                        var $scriptRelPath 'pi1/class.tx_ilcbuglist_pi1.php';    // Path to this script relative to the extension dir.
                            
                        var $extKey        'ilc_buglist';    // The extension key.
                            
                        var $pi_checkCHash true;

                            var 
                        $content null;

                        function 
                        main($content$conf) {
                                
                        $TYPO3_CONF_VARS['EXT']['noEdit'] = 0;
                                
                        $this->conf $conf;
                                
                        $this->pi_setPiVarDefaults();
                                
                        $this->pi_loadLL();
                                
                        $post t3lib_div::_POST();
                                
                        $get t3lib_div::_GET();

                                
                        //check if user is logged in
                                
                        if ($username != '') {
                                    
                        //back button pushed
                                    
                        if (isset($post['backButton'])) {
                                        
                        $content $this -> displayElements('back'10);
                                    }
                        //next button pushed
                                    
                        elseif (isset($post['nextButton'])) {
                                       
                        $this -> callWebservice($username,$ignoreClosed); //Hier soll die    Funktion aufgerufen werden( diese steht in der zweiten Klasse!)
                                    
                        }
                               }

                        Der Code ist hier nicht vollständig aufgelistet... aber man müsste eigentlich sehen, wo mein Problem ist

                        LG
                        RaisedFist
                        An der Stelle $this -> callWebservice($username,$ignoreClosed); muss jetzt ein anderer Befehl, der auf die Funktion zugreift, da this ja hier nicht geht!
                        Das war halt meine Frage.

                        LG
                        Raised Fist

                        Kommentar

                        Lädt...
                        X