Anforderungen an die Entwicklung von Anwendungs-Plugins
Anforderungen an Anwendungs-Plugins
- Plugins dürfen keinen urheberrechtlich geschützten Code, Icons, Bilder usw. enthalten.
- Der Quellcode des Plugins muss vollständig sein und darf nicht verschlüsselt werden.
- Plugins müssen vollständige Funktionen bieten und dürfen keine einfachen Funktionen sein.
- Es muss eine umfassende Funktionsbeschreibung und Dokumentation bereitgestellt werden.
- Die Verwendung von Koroutinen in Plugins wird nicht empfohlen, da Benutzer möglicherweise keine Koroutinen aktiviert haben.
Plugin-Identifikation
Jedes Anwendungs-Plugin hat eine eindeutige Identifikation, die aus Buchstaben besteht. Diese Identifikation beeinflusst den Namen des Quellcodeverzeichnisses, den Namensraum der Klasse und das Präfix der Datenbanktabelle des Plugins.
Wenn der Entwickler z. B. foo
als Plugin-Identifikation wählt, dann befindet sich das Verzeichnis des Plugin-Quellcodes unter {Hauptprojekt}/plugin/foo
, der entsprechende Namensraum des Plugins ist plugin\foo
und das Tabellenpräfix ist foo_
.
Da die Identifikation im gesamten Netzwerk eindeutig ist, muss der Entwickler vor der Entwicklung überprüfen, ob die Identifikation verfügbar ist. Die Prüfstelle ist Anwendungsidentifikationsprüfung.
Datenbank
- Tabellennamen bestehen aus Kleinbuchstaben
a-z
und Unterstrichen_
. - Die Datentabelle des Plugins sollte mit dem Präfix der Plugin-Identifikation beginnen, zum Beispiel die
article
-Tabelle desfoo
-Plugins lautetfoo_article
. - Der Primärschlüssel der Tabelle sollte
id
als Index haben. - Die Speichermaschine sollte einheitlich den
innodb
-Engine verwenden. - Das Zeichensatz sollte einheitlich
utf8mb4_general_ci
verwendet werden. - Für die Datenbank-ORM kann entweder
laravel
oderthink-orm
verwendet werden. - Zeitfelder sollten idealerweise als
DateTime
verwendet werden.
Codierungsrichtlinien
PSR-Richtlinien
Der Code sollte den PSR4-Ladeanforderungen entsprechen.
Klassennamen in PascalCase
<?php
namespace plugin\foo\app\controller;
class ArticleController
{
}
Klassenattribute und -methoden in camelCase mit kleinem Anfangsbuchstaben
<?php
namespace plugin\foo\app\controller;
class ArticleController
{
/**
* Methoden, die keine Authentifizierung benötigen
* @var array
*/
protected $noNeedAuth = ['getComments'];
/**
* Kommentare erhalten
* @param Request $request
* @return Response
* @throws BusinessException
*/
public function getComments(Request $request): Response
{
}
}
Kommentare
Die Attribute und Funktionen der Klasse müssen Kommentare enthalten, einschließlich einer Übersicht, Parameter und Rückgabetyp.
Einrückung
Der Code sollte mit 4 Leerzeichen eingerückt werden, und nicht mit Tabulatoren.
Kontrollfluss
Nach den Schlüsselwörtern für den Kontrollfluss (if, for, while, foreach usw.) folgt ein Leerzeichen, und die öffnende geschweifte Klammer des Kontrollflusses sollte in derselben Zeile wie die schließende runde Klammer stehen.
foreach ($users as $uid => $user) {
}
Temporäre Variablennamen
Es wird empfohlen, die camelCase-Namensgebung mit kleinem Anfangsbuchstaben zu verwenden (nicht zwingend).
$articleCount = 100;