Specifiche per lo Sviluppo di Plugin per Applicazioni
Requisiti per i Plugin per Applicazioni
- I plugin non possono contenere codice, icone, immagini, ecc. che violano i diritti d'autore.
- Il codice sorgente del plugin deve essere completo e non deve essere crittografato.
- Il plugin deve fornire funzionalità complete, non può limitarsi a una funzionalità semplice.
- È necessario fornire una descrizione completa delle funzionalità e della documentazione.
- Non si consiglia di utilizzare la funzionalità di coroutine all'interno del plugin, poiché l'utente potrebbe non aver attivato le coroutine.
Identificazione dei Plugin per Applicazioni
Ogni plugin per applicazioni ha un identificativo unico, composto da lettere. Questo identificativo influisce sul nome della directory del codice sorgente del plugin, sullo spazio dei nomi della classe e sul prefisso della tabella del database del plugin.
Supponendo che lo sviluppatore utilizzi foo
come identificativo del plugin, la directory del codice sorgente del plugin sarà {progetto principale}/plugin/foo
, lo spazio dei nomi corrispondente sarà plugin\foo
e il prefisso della tabella sarà foo_
.
Poiché l'identificativo deve essere unico su tutta la rete, lo sviluppatore deve verificare la disponibilità dell'identificativo prima di iniziare lo sviluppo. L'indirizzo per il controllo è Controllo Identificativo Applicazioni.
Database
- I nomi delle tabelle devono essere composti da lettere minuscole
a-z
e underscore_
. - Le tabelle dei dati del plugin devono avere come prefisso l'identificativo del plugin, ad esempio, la tabella article del plugin foo sarà
foo_article
. - La chiave primaria della tabella deve essere l'id come indice.
- Il motore di archiviazione deve essere uniformemente
innodb
. - Il set di caratteri deve essere uniformemente
utf8mb4_general_ci
. - Può essere utilizzato il database ORM
laravel
othink-orm
. - Si consiglia di utilizzare
DateTime
per i campi temporali.
Norme di Codifica
Standard PSR
Il codice deve conformarsi allo standard di caricamento PSR4.
Nomi delle classi in formato PascalCase
<?php
namespace plugin\foo\app\controller;
class ArticleController
{
}
Proprietà e Metodi della classe in formato camelCase
<?php
namespace plugin\foo\app\controller;
class ArticleController
{
/**
* Metodo che non richiede autenticazione
* @var array
*/
protected $noNeedAuth = ['getComments'];
/**
* Ottieni i commenti
* @param Request $request
* @return Response
* @throws BusinessException
*/
public function getComments(Request $request): Response
{
}
}
Commenti
Tutte le proprietà e le funzioni delle classi devono contenere commenti, inclusa una panoramica, i parametri e il tipo di ritorno.
Indentazione
Il codice deve essere indentato con 4 spazi, non utilizzare la tabulazione.
Controllo del Flusso
Dopo le parole chiave di controllo del flusso (if, for, while, foreach, ecc.) deve seguire uno spazio, mentre le parentesi graffe di inizio del blocco di codice devono trovarsi sulla stessa riga della parentesi tonda di chiusura.
foreach ($users as $uid => $user) {
}
Nomi delle Variabili Temporanee
Si consiglia di utilizzare il formato camelCase per i nomi (non obbligatorio).
$articleCount = 100;