Thread Techniken für Plugin-Einbindung (3 answers)
Opened by marky at 2011-09-24 12:58

rosti
 2011-09-27 20:27
#152708 #152708
User since
2011-03-19
3470 Artikel
BenutzerIn
[Homepage]
user image
hi Marky,

ich gehe mal davon aus, dass es eine Webanwendung ist, und so habe ich das da gemacht:

Serverseitig gibt es eine Tabelle mit allen URLs, die requestet werden dürfen (ohne Query_String). Nennen wir diese Sammlung 'Objects.bin', die Elemente sind Response-Objekte (RO). Jedes RO hat Eigenschaften, neben Title, Descr gibt es u.a. Eigenschaften worüber die Berechtigung abgewickelt wird.

Eine weitere wichtige Eigenschaft ist das Attribut iswas:

/index.html, iswas=rabbit
/impressum.html, iswas=template
/find.html, iswas=findform

An iswas stehen die Namen der Methoden, welche über das RO aufgerufen werden zur Darstellung des Body.

rabbit lädt den Body als HTML aus der Objects.bin; Keine Parameter.
template lädt das Template aus der Objects.bin; sofern es Parameter gibt, wird eine Methode gerufen, die namentlich im Attribut control=feedback genannt ist. Die Methode feedback ist der Controler gemäß MVC, verarbeitet die Eingaben und bestückt das Template, was dann ausgegeben wird.

As least, findform ist die Methode, welche beim Request auf /find.html aufgerufen wird, sofern es Parameter gibt, steht der Name der Methode namenlich fest: x_findform (Controler)

Plugins lassen sich somit ganz fein einbauen, wenn eine neue Methode gebraucht wird, die wird einfach der Klasse, welcher das RO angehört, hinzugefügt.

Neue Templates: Template schreiben und den Controler, fertig.


Das Ganze läuft so auf meiner Website. Kannst Du damit was anfangen?

--Rolf

PS. Edit: Die Bindung der URLs an Methoden ist vom Code getrennt, die Konfiguration. Zwischen URLs und iswas=Methoden gibt es eine n:n Beziehung.

Also, mein Plugin-Konzept: Es gibt keine einzelnen Scripts mehr, sondern entweder Template+Control-Method oder Methoden method+x_method im iswas-Attribut.

Alles zusammen läuft derzeit über ein CGI-Script als ResponseHandler, kann jedoch auch über mod_perl laufen oder über ein FastCGI.
Last edited: 2011-09-27 20:41:43 +0200 (CEST)

View full thread Techniken für Plugin-Einbindung