Erster Erfahrungen mit PHP6

31. August 2007

0 Kommentare

Vor kurzem habe ich mal die Entwicklungsversion von PHP6 heruntergeladen und gerade die ersten Tests gemacht. Die Einrichtung war kein Ding, da ich nur Kommandozeilentests machte reichte es, die .zip zu entpacken.

Der erste Start war ein Schock, ich wurde mit Warnungen überhäuft. Zuerst einmal SmartIRC, welches die sockets-Erweiterung nicht finden konnte und auch nicht nachladen, da es dl() in PHP6 nicht mehr gibt.
Daher habe ich das in der php.ini aktiviert was zuerst auch nichts brachte, da der extension_path standardmäßig falsch eingestellt ist. Wieso schieben die PHP Entwickler alles in den Ordner ext und lassen dann im PHP-Verzeichnis suchen?

Als nächstes gab es wieder Meldungen über SmartIRC, jedes dieses mal eine veraltete (deprecated) Methode, die die Klasse verwendet. Unter PHP4 wurden Objekte so gebildet:
$object =& Klasse;
Unter PHP5 ging das auch noch, das kaufmänische und war jedoch nicht mehr notwenig. Unter PHP6 geht das auch, nur mault PHP drüber…

Das nächste Ärgernis ging um Zeitzonen.

PHP Strict Standards: date(): It is not safe to rely on the system’s timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Europe/Paris’ for ‘2.0/DST’ instead in E:\Work\php_cli\bot\lib\log.class.php on line 62

Nun gut, dann fütterte ich halt PHP mit einer Zeitzone, die ihm passte:
date_default_timezone_set("Europe/Berlin");

Nach den Änderungen funktionierte der Bot wie er sollte ohne weitere Meldungen. Da es im PHP Manual noch nichts über PHP6 gibt, muss ich erstmal Google bemühen.
Darüber fand ich diese PDF-Datei (Ich wollte eigentlich eine Seite verlinken, auf der Webseite von OpenExpo fand ich jedoch keine Verlinkung zur Datei), die einiges an netten Neuerungen listet und was an alten Sachen endlich von Board geworfen wurde.

¬ geschrieben von Michael in PHP

PHP 5.2.4 Released

31. August 2007

0 Kommentare

Gestern released - heute im Feedreader rein bekommen. Von PHP gibt es nun die Version 5.2.4, der Changelog ist ziemlich lang, ich mach gleich das Update. :)

¬ geschrieben von Michael in PHP

The Geek-Test

30. August 2007

2 Kommentare

Grad beim PHP Blogger gefunden:

39% GeekMingle2 - Free Online Dating

//Edit:
Was es nicht alles gibt…

I am nerdier than 68% of all people. Are you a nerd? Click here to find out!

¬ geschrieben von Michael in Ausm Leben, Fun, Internet, Tests

iBot 0.1 alpha Release

30. August 2007

0 Kommentare

Nach vielen Stunden Arbeit ist es vollbracht: iBot IRC-Bot Framework ist bereit für die Veröffentlichung. Das ganze bekommt jetzt erst mal Alpha-Status, ich hoffe auf reges Feedback um den Bot gut weiterzuentwickeln und Fehler zu beheben zu können.

Das Release hat sich wegen einem nervigen Fehler um eine Woche verzögert, ich denk dass es dem Framework aber nicht geschadet hat.
Den ganzen Beitrag lesen.

¬ geschrieben von Michael in iBot

Wordpress optimieren

30. August 2007

0 Kommentare

Drüben beim SW-Guide habe ich nen interessanten Tipp gefunden, um das sonst so langsame Wordpress ein bisschen zu optimieren. Ich werde mal beobachten ob das wirklich und falls ja, wieviel das bringt. :)

¬ geschrieben von Michael in Blog

Name für das Bot-Framework gesucht

21. August 2007

1 Kommentar

Verfasst am 20. August 2007 um 08:39 Uhr im Dachboden

Ich bin gerade sehr am Grübeln für mein Blog-Framework, besonders was den Namen angeht, da es auch eine eigene Webseite erhalten soll, wenn es erfolgreicher wird :)

Aktuell habe ich iBot im Focus, da es einerseits gut klingt und zum Framework passt (iBot = irc-Bot).
Kleines Logo-Design mit GIMP, der Screenshot im Hintergrund ist mit PSPad gemacht.
iBot Logo

Falls jemand meiner Leser einen anderen Vorschlag hat würde ich mich sehr darüber freuen diesen zu hören, ich bin fast jeder Möglichkeit gegenüber offen ;)

¬ geschrieben von Michael in Allgemein, iBot

Plugins im laufendem Betrieb austauschen

21. August 2007

0 Kommentare

Verfasst am 20. August 2007 im Dachboden

08:35 Uhr
Ich bin gerade dabei, mein Bot-Framework weiterzuentwickeln und bin bei einem Punkt stecken geblieben: Wie kann ich das Plugin-System besser machen?
Bisher wurden die Plugins beim Start des Bots geladen und weitere hätte man ohne Probleme laden können. Zwei Dinge haben mir aber noch gefehlt: Updaten von Plugins im Betrieb und beenden dieser.

Das Beenden habe ich nun mit der magischen Methode __destruct und einem neuen Controller für die Plugins realisiert, jedoch hat mir das andere einiges an Kopfzerbrechen bereitet. Alle Plugins sind als Klassen deklariert, es ist jedoch unter PHP nicht möglich, in laufenden Skripts definierte Klasse zu verändern oder zu löschen.

Nach einigem Grübeln kam mir dann ein Einfall. Wieso nicht einfach die Klassen dynamisch bauen lassen?

Nach vielen Tests und Umgeschriebe an den Plugins war es nun so weit: Die Klassen werden nun erzeugt, indem ich die Definition (class name_id) mit einer Vorlage aus einer Plugin-Datei zusammensetzte. Nun kann ich einfach Änderungen an den Dateien vornehmen und im Betrieb Plugins austauschen, da jede Version eine eindeutige ID bekommt. Es wäre jetzt sogar möglich, mehrere Versionen eines Plugins gleichzeitig laufen zu lassen, macht jedoch wenig Sinn ;)

Ich habe beim Testen auch einen merkwürdigen Bug bei PHP gefunden: Wenn ich in einer auskommentierten Zeile ein ?> stehen hatte, bekam ich immer Fehlermeldungen wie diese:

Parse error: syntax error, unexpected $end in K:\Work\php_cli\bot\lib\PluginController.class.php on line 73

10:12 Uhr
Nach viel Debugging hab ich endlich die Reloadfunktion für Plugins fertig gestellt, da PHP gerne bei __destruct gerne ein bisschen zickte hab ich einfach eine eigene Funktion namens Unload() genommen die aufgerufen wird, bevor ein Plugin zerstört und durch eine neue Instanz ersetzt wird. Dies ist unter anderem notwenig, um die Handler von SmartIRC zu aktualisieren, da diese sonst auf eine falsche Klasse zeigen würden.

12:35 Uhr
Endlich muss ich nicht mehr den ganzen Bot neu starten, nur wenn mal eine Funktion nicht so arbeitet wie ich will. Einfach “!reloadplugin bla” an den Bot schicken und schon geht’s weiter mit entwickeln. Zuvor musste ich immer n halben Meter mit’m Stuhl an meinen anderen PC rutschen auf dem der Bot läuft. Das geht selbst mit dem ReloadPlugin-Plugin einwandfrei. :mrgreen:

¬ geschrieben von Michael in PHP

Wo ist die Doku, wenn man sie mal braucht?

21. August 2007

0 Kommentare

Verfasst am 20. August 2007 um 08:46 Uhr im Dachboden

Das dachte ich mir die letzten Tage einige Male. Da ich hier keinen Internetzugang habe, hab ich nur SelfHTML und die PHP-Dokumentation (leider ohne Benutzerkommentare) zur Verfügung die ich beide mal heruntergeladen habe, aber was ich jetzt richtig gebrauchen könnte wär einen Anleitung zu SQLite.

Hintergrund: Um mein Framework möglichst portabel zu machen möchte ich keinen Datenbankserver sondern eine dateibasierte Lösung zur Speicherung größerer Daten haben. Einen Port zu “richtigen” Datenbankservern wird es vllt. auch noch geben, wird aber einiges an switchen Bedeuten da es einige riesige Unterschiede gibt.

Ich werd jetzt versuchen das Bestes aus dem zu machen was ich hier habe, jetzt brauch ich erst mal nen Parser für SQL-Dateien :)

¬ geschrieben von Michael in Ausm Leben

Theme von BenediktRB • Powered by Wordpress • Abonniere den RSS Feed