Aus Sicht des Betreibers soll es so aussehen.
Er speichert Modul in im CMS Scriptordner
er trägt die einzubindenden Module ein in seine config Dateiehfplugin=SomeModulame1
ehfplugin=SomeModulame2Die Module sollten zudem auch nur im gewünschten Kontext in das Script eingebunden werden. Sie sollten nicht das Script bei jedem Request belasten.
Dazu müßte man dann Wissen, was der Kontext ist.
Ich handhabe das aktuell so, dass der Controller oder das Modul, dass das Plugin benötigt dieses mit
use CMS::Plugins::EinPlugin;
einbindet. Im MainController kann ich nun in der import Funktion alle eingebundenen Plugins registrieren und beim Start der Anwendung initialisieren.
Die Idee wäre, dass ein Aufruf von
//example.org/project/some_page
eine Seite aufruft.
Ob nun mit der some_page eine einfache CMS Seite gemeint ist, oder ob
damit der Aufruf eines Plugins verbunden ist, kann das Hauptscript über die config Datei erfahren.
Das Plugin solte aber definitiv erst geladen werden, wenn dies eben auch notwendig ist. Derzeit sehe ich nur die Möglichkeit über require.
Damit kann ich zwar leben. Für Die Entwicklung würde ich ein use vorziehen (debugging).
Ich denke auch nicht, dass ich ein Plugin direkt aus dem Hauptscript aufrufen will, sondern dafür auch ein Controller-Modul verwenden will, dem das Hauptscript die notwendigen Daten übergeben kann.
Der Controller wäre sicher auch von Vorteil für die Entwicklung.
Ich weiss, dass es da noch das IF Mdoul gibt. Aber damit habe ich keinerlei Erfahrung.
Was ich allenfalls tun könnte: Das Einlesen der config Datei in die BEGIN Phase verlagern, um dann Modul Handling abhängig vo den dortigen Einträgen zu tätigen.
Aber das löst halt das Problem nicht, dass ich zu diesem Zeitpunkt den some_page Request bzw den http userinput noch nicht ausgewertet habe.
mfg Beat
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische