Yanix im Detail: Events, Handler und SmartIRC

13. Januar 2008

Bisher gab es für Plugins so gut wie keine Möglichkeit, mit dem Bot-Kern zu arbeiten. Durch die Entwicklung der allgemeinen Events-Klasse wird sich einiges ändern. Doch erstmal ein bisschen Geschichte:

Wegen einem Fehler (oder Feature?) in SmartIRC war es bisher nicht möglich, mehr als einen Handler für eine Aktion zu registrieren, z.B. konnte nur ein Plugin auf einen Join reagieren. Deswegen wurden die YanixHandlers geschrieben, welche dies überwunden, indem sie diese Aktionen belegten und an beliebig viele Plugins weitergeben konnten. Durch einen Patch (von vielen), welche ich an SmartIRC angewandt habe, sind diese nicht mehr möglich.

Diese Klasse wurde im Laufe der Entwicklung auch für den Heartbeat verwand, welcher regelmäßige Aktionen ermöglicht. Erst durch diesen wurden Funktionen wie die Absturzsicherung möglich. Anfangs habe ich diesen als Erweiterung der YanixHandlers-Klasse genutzt, was jedoch eine ziemlich Zweckentfremdung und ziemlich unsauber war. Da das Ganze auch alles andere als flexibel war, musste eine komplett neue Lösung her. Die Events.

Die Events funktionieren wie die meisten Plugin-Systeme. Es können Callbacks registriert werden welche dann im späteren Verlauf aufgerufen werden. Prominentes Beispiel für diese Methode ist Wordpress (welches dies aber nicht objektorientiert macht). Die Klasse ist simpel und allgemein und kann daher auch für andere Projekte genutzt werden aber doch sehr praktisch.

SmartIRC ist eine sehr praktische Klasse um mit PHP eine Verbindugn zu IRC-Servern herstellen zu können. Leider ist die Klasse veraltet und schon lange nicht mehr weiterentwickelt worden. Das letzte Release ist vom 27.05.2005, der letzte Commit im CVS knapp 4 Monate her, manche Bugsmeldungen sind schon über ein Jahr offen. Ich bin schon öfters am Überlegen ob ich einen Fork der Klasse mache, vor allem wegen diesen Gründen:

Aufgrund des Umfangs der Klasse würde das Umschreiben auf eine komplett statische Klasse (was ich am sinnvollsten und praktischsten) einige Zeit kosten und ein Umschreiben von großen Teilen von Yanix bedeuten (was eh schon beim Umstieg von iBot der Fall war). Jedoch würde es viele Vorteile haben.

Vor wenigen Tagen habe ich mal die CVS-Version von SmartIRC getestet. Sie ist 4 Monate alt, also recht “neu”. Ergebnis: Ständige Abstürze durch den Aufruf von nicht-existenten Funktionen. Schade.

Ich warte erst mal auf PHP 5.3, die Namespaces könnten sehr interessant werden.

4 Kommentare zu 'Yanix im Detail: Events, Handler und SmartIRC'

  1. BadBoy_ sagte am 13. Januar 2008 um 20:29 Uhr:

    man man man….bei dir klingt das ja total kompliziert^^
    mein rubybot is da um einiges simpler glaub ich :D

  2. Michael sagte am 14. Januar 2008 um 17:58 Uhr:

    Yanix kann auch etwas mehr ;-)

  3. Dieter Holyshit sagte am 16. Januar 2008 um 11:55 Uhr:

    Yanix das Monster

    Yanix fliegt und fährt von selber
    Yanix melkt selbst junge Kälber
    Yanix kann ein Weib verführen
    Yanix wird selbst Pudding rühren
    Yanix hilft der Oma kehren
    Yanix kann den Müll entleeren
    Yanix kann auch noch beglücken
    Yanix tut nach Seife bücken
    Yanix schlägt den Rubybot
    Yeah I think, thats quite a lot…

  4. Michael sagte am 16. Januar 2008 um 19:27 Uhr:

    lol :mrgreen:

Hinterlasse einen Kommentar

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