Neuer Routingmechanismus für Controller, die als Package implementiert sind
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 30 Dec 2010 15:17:36 +0000 (16:17 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 30 Dec 2010 15:17:36 +0000 (16:17 +0100)
commit41400107ec8929d6ea107de7f5238006e9de029c
tree3b683c244cce950d40ecfb03edcaf7fbb2eddbac
parent95ecb4289e58990f441f0273182c55f45f26bfb6
Neuer Routingmechanismus für Controller, die als Package implementiert sind

Voraussetzungen:

* Controller liegt in SL/Controller/Class.pm und ist von
SL::Controller::Base abgeleitet.

* Der Name von Subs, die als Action aufgerufen werden sollen, muss mit
"action_" beginnen. Alle Versuche, andere (auch existierende) Subs
aufzurufen, werden entsprechend mit Fehlermeldungen quittiert.

* Pro Request wird eine Instanz der Klasse erzeugt und danach vom
garbage collector entsorgt.

* Im Controller "$self->parse_html_template()" verwenden, dann ist im
Template $self als SELF verfügbar, z.B. "[% FOREACH message =
SELF.messages %]".

* Form-Parameter "action" muss das Format "Controller::action"
besitzen. "Controller" ist der Packagename ohne die Präfixe, sprich
der Basisdateiname. "action" ist der Name der aufzurufenden Sub ohne
das "action_"-Präfix. Aus "Message::list" würde also grob gesehen
"SL::Controller::Message->new->action_list()".

* Das Script in der URL muss 'controller.pl' heißen.

Conflicts:

SL/Dispatcher.pm
scripts/locales.pl
SL/Controller/Base.pm [new file with mode: 0644]
SL/Dispatcher.pm
SL/Form.pm
scripts/locales.pl