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 des foo-Plugins lautet foo_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 oder think-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;