Archiv

Artikel Tagged ‘php’

Erste Versuche mit phpGTK2

11. Oktober 2010 Keine Kommentare

Heut hab ich die ersten Schritte auf Neuland gewagt -> phpGTK2.
phpGTK2 ist die Schnittstelle zw. PHP5 und GTK2. Letztes ist eine Programmierersprache auf Linux.

Installation Debian/Ubuntu

Nach Ihr ein normales PHP5 Setup gemacht habt, ladtet ihr euch die .deb ein phpgtk2 herunter:

http://www.phoronix-test-suite.com/misc/php5-gtk-lucid/

(funktioniert auch auf 10.10) und installiert diese. Nun ist phpGTK2 bereit!

Erster Versuch:

Weitere Berichte werden folgen :)

http://gtk.php.net

Ein kleines Pluginsystem in PHP – Teil1

2. April 2010 3 Kommentare

Artikel wurde neu geschrieben und ist hier erreichbar.

OUTDATED: Dieser Text ist veraltet und wird in der Woche vom 16.01.2012 bis zum 22.01.2012 ersetzt.

In den folgenden 3 Teilen werd ich euch zeigen, wie Ihr euch relativ einfach ein PHP Pluginsystem schreibt.
Der hier veröffentliche Quellcode kann unter der Creative Commons 3.0 by-sa mit Namensnennung von “Alexander Grüßung” und Verlinkung auf www.gvisions.de (zB. in den Credits (nicht nur als Kommentar!)) genutzt und veröffentlicht werden.

Teil 1: Vorüberlegung & die Klasse

Nun, wenn man so überlegt, was muss ein Pluginsystem alles mitbringen, damit man mit diesem ordentlich arbeiten kann?

Ich finde ein Pluginsystem sollte leicht zu verstehen sein, modular aufbauend sein und Ressourcen schonen.

Auf die Architektur der Ordner in eurem Projekt gehe ich jetzt nicht ein, da diese für die Pluginklasse, welche ich geschrieben habe nicht relevant ist.
Aber als Information gebe ich hier mal meine Ordnerstruktur preis:

/ – root Verzeichnis des Projektes
/core – hier liegen die ganzen Klassen
/application/plugins – wie der name schon sagt

 

Die anderen Ordner sind irrelevant.
In dem Ordner Plugins bekommt jedes Plugin noch einen Unterordner, die Schwierigkeit besteht darin, das die Pluginentwickler Ihre Plugins unterschiedlich benennen.
Vorerst lasse ich dies aber außer Betracht und widme mich in Teil 3 nochmal dem ganzen.

Kommen wir nun zur Pluginklasse ansich:


<del><!--?php /* gPlugin class to manage plugins (c) Alexander Gruessung 2010 */ class gPlugin { public  $pluginName = ''; public  $pluginClass = ''; public  $sql = ''; public  $content = ''; function __construct($pluginName) { $this--->pluginName = $pluginName;</del>
<del> if ($this->isRegist()==false OR $this->isActive()==false) {</del>
<del> $this->pluginName = 'PluginNotFound';</del>
<del> }</del>
<del> require_once('application/plugins/'.$this->pluginName.'/'.$this->pluginName.'.php');</del>
<del> $this->pluginClass = new $this->pluginName();</del>
<del> }</del>
<del> /*</del>
<del> * public function getContent</del>
<del> * @name getContent</del>
<del> * @version 1.0</del>
<del> * @author Alexander Gruessung</del>
<del> * @parameters pluginname</del>
<del> */</del>
<del> public function getContent() {</del>
<del> $plugin = new $this->pluginName();</del>
<del> $this->content = $plugin->run();</del>
<del> return $this->content;</del>

<del> }</del>

<del> public function getTitel() {</del>
<del> return $this->pluginClass->getTitel();</del>
<del> }</del>

<del> private function isRegist() {</del>
<del> $plugin = $this->pluginName;</del>
<del> $sql = new db();</del>
<del> $sql->query("SELECT * FROM ".prafix."_plugins WHERE `filename` = '".$this->pluginName."'");</del>
<del> $num = $sql->num_rows();</del>
<del> if ($num!="") {</del>
<del> return true;</del>
<del> } else {</del>
<del> return false;</del>
<del> }</del>
<del> }</del>

<del> public function isActive() {</del>
<del> $sql = new db();</del>
<del> $plugin = mysql_real_escape_string($this->pluginName);</del>
<del> $sql->query("SELECT * FROM ".prafix."_plugins WHERE `filename` = '".$plugin."' AND `activate` = 'true'");</del>
<del> $row = $sql->fetch();</del>
<del> $num = $sql->num_rows();</del>
<del> if ($num=="" OR $row->activate=="false") {</del>
<del> return false;</del>
<del> } else {</del>
<del> return true;</del>
<del> }</del>
<del> }</del>

<del>}</del>

Die Klasse ist somit komplett.
Erklärungen, so denke ich, muss ich nicht viele geben.>
Kurz zur Datenbankstruktur:

id (int, primary) | name (varchar 500 [für beschreibung]) | filename (varchar 200 [dateiname des plugins]) | activate (varchar 4 [true oder false])

Die Verwaltung der Plugins ist also relativ einfach.
Jetzt mal ein beispielplugin:

<!--?php class HelloWorld {  public function __constructor() {  }  public function getTitel() {  return "Hello World";  } //hier eventuell Dateien includieren und/doder Funktionen einbinden.  public function run() {   $html = "Hello World";   return $html;  } } ?-->

Wie man also sieht, gibt die Funktion run() in meinem Fall den HTML Quelltext zurück.
Natürlich kann man Pluginintern noch mit Templates arbeiten. Das ist garkein problem und sollte auch für PHP Laien realisierbar sein.
Stichwort: preg_replace, preg_match und so weiter…

Aufgerufen werden Plugins folgendermaßen:

</pre>
&nbsp;

<!--?php $plugin = new gPlugin('HelloWorld');  //die Klasse deklaireren $pluginTitel = $plugin--->getTitel();</del></span>
<span style="color: #000000;"><del>$pluginContent = $plugin->getContent();
?>

 

Nun kann man mit diesen Variablen machen, was man will:)

Im nächsten Teil werde ich auf eine Installationsroutine eingehen.

XAMPP installieren

13. November 2009 Keine Kommentare

XAMPP aufsetzen

Vorrausetzung:

  • Server mit SSH Zugriff (am besten Rootserver/vServer)
  • SSH Client auf dem eigegen PC, zB Putty

Los gehts:

1. per SSH einloggen

Startet Putty und gebt die IP eures Servers ein.

Logg dich anschließend mit den Userdaten ein, die du bei der Installation eingegeben wurden.

2. XAMPP runterladen & installieren

Als erstes laden wir XAMPP runter, als Zielverzeichnis wählen wir das /home/user Verzeichnis.

wget http://www.apachefriends.org/download.php?xampp-linux-1.6.8a.tar.gz

Jetzt entpacken wir XAMPP, das entpacken ist gleichzeitig die Installation.

tar xvfz xampp-linux-1.6.8a.tar.gz -C /opt

Zum Updaten ladet euch bitte das Updatepaket, nicht das hier angegebene. Bitte keine Entpackungstools, sondern diesen Befehl verwenden!

3. xampp.sh erstellen

Damit wir nicht bei jedem Start von XAMPP den Startbefehl “/opt/lampp/lampp start” eingeben müssen, erstellen wir eine Shelldatei, deren Aufruf leichter ist.

cd

nano xampp.sh

#Es öffnet sich nano, tippt folgendes in die Datei:

sudo /opt/lampp/lampp start

#Drückt jetzt F2, bestätigt mit Y und Enter

4. XAMPP starten

./xampp.sh

Und schon startet XAMPP

Starte XAMPP für Linux 1.6.8a...
XAMPP: Starte Apache mit SSL...
XAMPP: Starte MySQL...
XAMPP: Starte ProFTPD...
XAMPP gestartet.

5. Standardpasswörter umstellen

Zur Sicherheit stellen wir zuerst die Standardpasswörter um, beachte bitte, das die Beispielscripte, die unter http://localhost zu erreichen sind, dann nicht mehr funktionieren.

Führe folgenden Befehl aus und folge den Anweisungen auf dem Bildschirm:

/opt/lampp/lampp security
Rss Feed Tweeter button Facebook button Technorati button Delicious button Flickr button Youtube button