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
$DatabaseStructure = [
'{pre}example_plugin' => [
'fields' => [
['user_id', 'int(11)', 'NO'],
['examplefield', 'varchar(255)', 'NO'],
],
'indexes' => [
'user_id' => ['user_id'],
],
],
];
SyncDBStruct($DatabaseStructure);
Alles anzeigen