Wednesday 8th of February 2012

_Info:

Rechtliche Hinweise findet Ihr im Impressum (Credits): hier klicken.

Im Allgemeinen kann hier auch gesagt werden, dass die Scripte Überwiegend für den Einsatz auf Ohost und Funpic gedacht sind. Das heißt, dass die Skripte eigentlich überall laufen sollten!

_ Übersicht » PHP und MySQL » Plugins laden »

QR Link

Ihr kennt das sicherlich. Man hat Tausende Funktionen, die als Plugin für eure Homepage gedacht sind. Was macht man da im Normalfall? Richtig, man includiert sie:

  1. <?php
  2. include "funktion_a.php";
  3. include "funktion_b.php";
  4. include "funktion_c.php";
  5. include "funktion_d.php";
  6. include "funktion_e.php";
  7. include "funktion_f.php";
  8. /* Aufführung der Funktionen */
  9. ?>


Nun versaut die aber die Übersichtlichkeit und macht den Quellcode unnötig lang.

Nun kann man auch alle Funktionen in einer Klasse tun, was aber bei einem Plugin wenig Sinn macht.

Hier kommt nun meine Funktion ins Spiel. Ihr müsst nur noch eine Funktion includieren (oder wie ich das mache, eine Methode laden). Im Beispiel mache ich das mit include

Als erstes kommen wir zu der Funktion, die wie folgt aussieht:
  1. <?php
  2. # @filename: loadPlugin.php
  3. function loadPlugin($plugin,$action){
  4. if(function_exists($plugin)){
  5. $out = call_user_func($plugin, $action);
  6. }else{
  7. if(file_exists(PLUGIN_PATH.$plugin)){
  8. include PLUGIN_PATH.$plugin.".php";
  9. $out = call_user_func($plugin, $action);
  10. }
  11. }
  12. return $out;
  13. }
  14. ?>


Nun müsst Ihr eure Funktionen in einer Datei speichern, die exakt genauso heißt, wie die Funktion. In meinem Beispiel handelt es sich um die Funktion foo().

  1. <?php
  2. # @filename: foo.php
  3. function foo($parm){
  4. return $parm;
  5. }
  6. ?>


Aufrufen der Funktion foo():
  1. <?php
  2. # @filename: index.php
  3. define("PLUGIN_PATH","./path/to/plugins/");
  4. include PLUGIN_PATH."loadPlugin.php";
  5. echo loadPlugin("foo","bar");
  6. ?>


Nun wird einfach nur bar ausgegeben. (oder halt das, was Ihr anstelle von bar eingegeben habt.)

Wenn man nun aber mehrere Parameter an die Funktion übergeben möchte, macht man dies mit einem Array. Hierzu schreiben wir einfach noch einige Parameter zu der Funktion foo() hinzu:

  1. <?php
  2. # @filename: foo.php
  3. function foo($parm1,$parm2,$parm2="Leer"){
  4. return $parm1." | ".$parm2." | ".$parm3;
  5. }
  6. ?>


  1. <?php
  2. # @filename: index.php
  3. define("PLUGIN_PATH","./path/to/plugins/");
  4. include PLUGIN_PATH."loadPlugin.php";
  5. echo loadPlugin("foo",array("Parm1","Parm2"));
  6. #Ausgabe: Parm1 | Parm2 | Leer
  7.  
  8. echo loadPlugin("foo",array("Parm1","Parm2","Parm3"));
  9. #Ausgabe: Parm1 | Parm2 | Parm3
  10. ?>


Wenn man will, kann man nun auch noch die Plugins Regestrieren oder ein "Ein/Aus-Schalter" einbauen. Dies kann man über mehrere Umwege machen. Ich mache mir das ganz einfach und benne die Funktion die deaktiviert erden soll um. (Aus foo.php wird dann _foo.php) In den Meisten fällen kann dort aber eine Fehlermeldung kommen. Oder wenn ihr (z.B.) eure BB-Code Funktion so ausführt, gibt es ebend keine Ausgabe mehr.

Dateianhänge:

DateinameDateigrößeMIME-TypLetzte Änderung
index.php473 Bytesapplication/x-httpd-php28.01.2010, 11:01 CET
foo.php120 Bytesapplication/x-httpd-php28.01.2010, 11:01 CET
loadPlugin.php120 Bytesapplication/x-httpd-php28.01.2010, 11:01 CET

_Kommentare zum Artikel:

Keine Kommentare vorhanden

Eingetragen von: Apophis171 am: 2008-01-21 00:00:00 Quote

Schreibe jetzt selbst einen...

Name:*
E-Mail / www:
Titel:
offene Tags Schliessen



Very Happy Smile Sad Surprised Shocked Confused Cool Laughing Mad Razz Embarassed Crying or Very sad Evil or Very Mad Twisted Evil Rolling Eyes Wink Exclamation Question Idea Arrow Neutral Mr. Green
Kommentar/Nachricht:

Anzeige

getDigital.de - Gadgets und mehr für Computerfreaks

Login

Suche

Partner:

Meine Linktips:

  •       Valid XHTM... (?)
  •       Valid XHTM... (?)
  •       CSS Valid... (?)
  •       CSS-Play... (?)
  •       w3 tablele... (?)
  •       PHP Powere... (?)
  •       QL Powered... (?)
  •       Browser-St... (?)
  •       Suchmaschi... (?)
  •       INTERNAUT... (?)

Counter

Online:7(0)
Woche:65
Jahr:1.785
Gesamt:75.619
Bots:26.037
Record:413
Ereicht am:2010-05-21 23:45:51
Wir löschen das Wissen der Menscheit - Deines auch!