- Offizieller Beitrag
Wie ein Plugin aufgebaut werden sollte, ist unter https://github.com/b1gMail-OSS/b1…ckler%3APlugins beschrieben. Das werde ich im Lauf der Zeit noch erweitern.
Einige Änderungen in 7.4.1:
1. Öffentliche Funktionen sollten mit public beginnen, Private mit private, wenn nur innerhalb der Plugin-Klasse aufgerufen wird. In alten Versionen wurde zweck PHP4-Kompatibilität auf die explizite Bezeichnung verzichtet, d.h. alle Funktionen sind öffentlich.
2. Plugins sollten in UTF-8 Format gespeichert werden. 7.4.1 wird zwar als letzte Version noch "nicht UTF-8-Installationen" unterstützen, aber der Entwickler muss die Kompatiblität mit solchen Installationen nicht sicherstellen, das muss der Endnutzer manuell machen.
3. Konstruktoren müssen mit __construct gekennzeichnet sein. In alten PHP-Versionen war der Konstruktorname gleich Klassenname. In PHP 8 wird dies ignoriert und führt dazu, dass die Plugininformationen nicht angezeigt werden.
4. Statische Aufrufe müssen explizit gekennzeichnet sein. $this-Aufrufe sind in statische Funktionen nicht erlaubt. In PHP 8 erzeugt sonst das aufrufen statische Funktion, die nicht als statisch gekennzeichnet sind, zu Fehlern.
In Zukunft:
DB-Änderungen bzgl Tabellen und Felder sollten stets mit b1gMail eigenen Funktionen gemacht werden. Fürs erstellen und modifizieren von Tabellenfelder eignet sich die Funktion SyncDBStruct:
Beispiel