Re: CB: oop in bp - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Sander (8133 Beiträge) am Donnerstag, 14.November.2002, 23:54.
    CB: oop in bp

      hi Christoph,

      du hast mir mal erzählt, das ich mit includes lustige oop-spielchen treiben kann. hast du das wirklich schon mal probiert? ich komme zur keiner lösung, weder mit include, noch ohne. könntest du mal ein kleines beispiel zeigen?

      Grüsse

      Sander

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 15.November.2002, 04:07.
    Re: CB: oop in bp

      Naja, von OOP hab ich eigentlich nich gesprochen, ich meinte, dass man wiederverwendbare Funktionen in eigenen Templates auslagern kann und diese dann includen...

      Also einfaches Beispiel:

      template "math":

      sub power
      {
        return $_[0]*$_[0];
      }
      

      ...und viele weitere schöne subs...

      template "bla":

      <include src="math">
      

      <perl>
      out power 5;
      
      ...
      </perl>

      Man kann natürlich mehrere subs in 1 Template packen und/oder mehrere Templates includen - wie mans braucht... Is eigentlich genauso wie in C oder PHP oder in allen anderen Sprachen, die's so gibt ;-)

      OOP an sich funktioniert aber auch, wie in Perl halt, äh, fast...:

      template "oop1":

      <perl>
      

      package blubb;

      sub new
      {
        my $this=shift;
        my $class=ref($this) || $this;
        my $self={};
        bless $self, $class;
        return $self;
      }  
      

      sub store
      {
        my($self, $key, $value)=@_;
        $self->{$key}=$value;
      }
      

      sub fetch
      {
        my($self, $key)=@_;
        return $self->{$key};
      }
      

      sub all_out
      {
        my($self)=@_;
        my($key);
        foreach $key (keys %$self)
        {
          main::out "$key=$self->{$key}<br>";
        }
      }
      

      1;

      </perl>
      


      und template "oop2":


      <include src=oop1>
      

      <perl>
      $bla=new blubb;
      

      $bla->store("Name", "Hans");
      $bla->store("Alter", "34");
      $bla->store("Farbe", "Grün");
      

      out $bla->fetch("Alter")."<p>";

      $bla->all_out;
      </perl>
      


      das obige "fast" deshalb, weil die bp-befehle wie z.b. "out" in dem package "blubb" nich mehr zur verfügung stehen und deshalb mit vollem namen angesprochen werden müssen, also "main::out" (s. beim all_out)... weiss garnich obs dafür ne lösung gibt....

      abgesehen davon (wenn mans weiss...) funzt das perl-OO schon ganz gut in bp ,-)

     Antworten

    Beitrag von Marco (840 Beiträge) am Freitag, 15.November.2002, 07:19.
    Re: CB: oop in bp

      Find ich klasse!

      Kannst Du das vielleicht nochmal für doofe übersetzen ;-)

      Marco

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 18.November.2002, 14:41.
    Re: CB: oop in bp

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 15.November.2002, 09:30.
    Re: CB: oop in bp

      ich hab immer das problem, das die klasse nach dem include im neuen <perl>-block gar nicht bekannt ist. somit auch kein new funzt.

      Sander

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 15.November.2002, 09:56.
    Re: CB: oop in bp

      so, gerade hab ich deins ausprobiert - geht auch nicht :-(

      wenn ich main::out "$key=$self->{$key}<br>";
      schreibe gibts einen syntaxfehler
      bei
      main::out ("$key=$self->{$key}<br>");
      kommt gar keine Ausgabe...

      Sander

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Montag, 18.November.2002, 08:20.
    Re: CB: oop in bp

      Hallo Sander:

      Seltsam, bei mir funktioniert das Beispiel von Christoph!

      Hast Du auch nicht auf das 1; vergessen?

      Wenn Du alles in ein Template schreibst (geht natürlich), dann brauchst Du in der Regel ein

      package main;

      nach dem 1;. Erst dann findet Perl auch Deine Klassen und vor allem Deine out's wieder.

      Grüße von Jurenda :-})

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 18.November.2002, 09:37.
    Re: CB: oop in bp

      ja, so passt es innerhalb eines templates...
      wenn ich aber blubb includen will geht nix, kommt nur weißer bildschirm... aber genau darauf kommt es mir hauptsächlich an.
      Hast du das Beispiel komplett so übernommen wie von CB geschrieben?

      Grüsse

      Sander

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 18.November.2002, 14:42.
    Re: CB: oop in bp

      Also ich hab das genauso getestet, bei mir funzts... Gib mal nen Link ,-)

     Antworten


     
 Liste der Einträge von 42451 bis 42601:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.07s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!