Bootstrapping eines Add-ons (init.php)#
In erster Ebene des Add-on-Verzeichnisses muss eine init.php-Datei liegen. Diese wird vom i-doit-System automatisch inkludiert, um das Add-on im Kern zu registrieren. Vom Entwickler sollte die init.php dazu genutzt werden, um Add-on-spezifische Vorbereitungen zu treffen. Dazu gehört unter anderem das Definieren von Konstanten oder das Registrieren der Autoloader und Routen. Ebenso können hier Callbacks via "Signal-Slot"-Komponente registriert werden.
Weiterhin können innerhalb der init.php-Report-Views und Dashboard-Widgets registriert werden, damit i-doit an den entsprechenden Stellen darauf zugreifen kann.
Die init.php muss so wenig Logik wie möglich mitliefern, damit die Performance nicht darunter leidet. Die init.php-Dateien aller Add-ons werden bei jedem Request durchlaufen!
Prüfen, ob das Add-on aktiv ist#
Die erste Codeanweisung innerhalb der init.php muss prüfen, ob das Add-on aktiv ist. Nur dann darf weiterer Code ausgeführt werden!
Der nötige Code dazu sieht folgendermaßen aus:
1 2 3 4 |
|
Alle weiteren Anweisungen dürfen lediglich innerhalb dieser Überprüfung stattfinden!
Autoloader PSR-4 und Legacy#
PSR-4#
Für PHP-Klassen, die nach PSR-4 erstellt werden, bietet i-doit eine einfache Möglichkeit, den Add-on-Namespace in den Autoloader zu implementieren:
1 2 |
|
Legacy Code#
Für PHP-Klassen im Legacy-Format (wie z.B. die Rechtesystem- oder Kategorie-Klassen) muss der entsprechende Legacy-Autoloader verwendet werden. Üblicherweise liegt dieser direkt im Add-on-Verzeichnis und sollte in etwa so aussehen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
Der Legacy-Autoloader wird folgendermaßen in der init.php registriert:
1 2 3 4 |
|
Einstellungen für [Mandanten-Name] erweitern#
Die dargestellten Einstellungen für [Mandanten-Name] unter Verwaltung → [Mandanten-Name] Verwaltung → Einstellungen für [Mandanten-Name] können mittels Add-on erweitert werden. Weitere Informationen hierzu befinden sich im Artikel Systemeinstellungen erweitern.