Module laden

Die Funktionen zum Laden von Modulen komplett überarbeitet.

Module laden

Module laden

Nachdem das letzte Release abgeschlossen war, habe ich endlich zeit gefunden mich mal darum zu kümmern wie bei Websitebaker(CE) Module geladen werden. Die Alte Methode war meiner Meinung nach einfach nur von Einschränkungen gekennzeichnet. Deswegen hab ich einfach mal damit angefangen Snippets für alle Module zu erlauben.

Wo der Stein dann erstmal los getreten war habe ich gleich noch 2 neue Moduldateien eingeführt. Beide erlauben es sich in den initialisierungs Prozess von WB(CE) einzuhängen und dort Änderungen vorzunehmen.  
Die eine (preinit.php) hängt dich direkt nach der initialisierung der Datenbank ein. Zu diesem Zeitpunkt ist außer der wenigen Konstanten aus der config.php und der Datenbank noch überhaupt nichts geladen. Deswegen kann man hier Systemkonstanten, Sprache, Seiten Id und was auch immer einfach modifizieren. 
Die Zweite (initialize.php) hängt sich ein nachdem die Initialisierung zu gut 2/3 gelaufen ist Systemkonstanten stehen fast alle zur Verfügung und das wichtigste ist der Autoloader ist bereit.  Hier können Module dann einfach eigene Klassen für die Benutzung im Frontend UND im Backend registrieren. Zum Beispiel kann man Twig und PHPlib in Module auslagern zur besseren wartbarkeit.

Als Folge davon mussten natürlich die Funktionen zur Verwaltung von Modulen etwas angepasst werden. Dadurch ist es jetzt möglich mehrere Modul Funktionen auf einmal aus zu wählen($module_function in info.php)

$module_directory = 'wbstats';
$module_name = 'WebsiteBaker Visitor statistics';
$module_function = 'tool,page,snippet,preinit';
$module_version = '0.1.10';
$module_platform = '2.8.x';
$module_author = 'Dev4me - Ruud Eisinga - www.dev4me.nl';
$module_license = 'GNU General Public License';
$module_description = 'Displays website statistics as an admintool';

Wie man sehr gut sehen kann ist jetzt praktisch jede Kombination von Modulen möglich. Hier wird dann noch zusätzlich die preinit.php genutzt um sich einen unbehandelten Referer zu besorgen.  Aber mehr Details hierzu gibt es in den nächsten Blogposts.

Natürlich muss das alles noch ein wenig getestet werden , vor allem habe ich Sorge das die SQL Queries etwas Ärger machen wenn sie auf verschiedenen SQL Versionen laufen (die sind doch sehr einfach gehalten).  Aber das ist wie mit allen Neuerungen, man muss halt testen, testen, testen....

Nebenbei habe ich auch noch angefangen alte require/include  Statements  rauszuwerfen , da ja die meisten davon mit der Einführung de Autoloaders überflüssig geworden sind. Wobei mir die alten frontend_functions.php, functions.php.... noch ordentlich Kopfschmerzen bereiten da ich nicht so recht weiß was ich mit denen machen soll, vielleicht in Module auslagern, mal sehen. 

Die aktuelle Testversion finden Sie hier:
https://github.com/WBCE/WebsiteBaker_CommunityEdition/tree/continue

Die englische Version dieses Artikels finden Sie hier:
http://forum.wbce.org/viewtopic.php?id=300

Das könnte Sie auch interessieren

WB Stats Die neuen Funktionen für WB Stats
Jetzt haben wir schon neue Funktionen , aber was können wir damit machen.

Kommentar schreiben

Wir Menschen unterscheiden uns doch nur dadurch von den Tieren,
daß wir bessere Ausreden für unsere eigene Jämmerlichkeit haben.
-- Dieter Nuhr