Especificações para Desenvolvimento de Plugins de Aplicativo
Requisitos para Plugins de Aplicativo
- O plugin não pode conter código, ícones, imagens etc. que infrinjam direitos autorais.
- O código fonte do plugin deve ser completo e não pode ser criptografado.
- O plugin deve oferecer funcionalidades completas, e não apenas funcionalidades simples.
- Deve fornecer uma introdução completa sobre as funcionalidades e a documentação.
- O uso de funcionalidades de corrotina no plugin não é recomendado, pois o usuário pode não ter ativado corrotinas.
Identificação de Plugins de Aplicativo
Cada plugin de aplicativo tem uma identificação única, que é composta por letras. Esta identificação influencia o nome do diretório de código fonte do plugin, o namespace da classe e o prefixo da tabela do banco de dados do plugin.
Supondo que o desenvolvedor utilize foo como identificação do plugin, o diretório onde o código fonte do plugin está localizado será {projeto_principal}/plugin/foo
, o namespace correspondente do plugin será plugin\foo
e o prefixo da tabela será foo_
.
Como a identificação deve ser única na rede, o desenvolvedor precisa verificar se a identificação está disponível antes de começar o desenvolvimento. O endereço para a verificação é Verificação de Identificação da Aplicação.
Banco de Dados
- Os nomes das tabelas devem consistir em letras minúsculas
a-z
e sublinhados_
. - As tabelas de dados do plugin devem ter o prefixo da identificação do plugin, por exemplo, a tabela article do plugin foo será
foo_article
. - A chave primária da tabela deve ser
id
como índice. - O mecanismo de armazenamento deve usar uniformemente o mecanismo InnoDB.
- O conjunto de caracteres deve usar uniformemente
utf8mb4_general_ci
. - ORM do banco de dados pode usar Laravel ou Think-ORM.
- Campos de tempo devem usar preferencialmente DateTime.
Normas de Código
Normas PSR
O código deve estar em conformidade com a norma de carregamento PSR4.
Nomenclatura das Classes em CamelCase
<?php
namespace plugin\foo\app\controller;
class ArticleController
{
}
Atributos e Métodos da Classe em camelCase
<?php
namespace plugin\foo\app\controller;
class ArticleController
{
/**
* Métodos que não precisam de autenticação
* @var array
*/
protected $noNeedAuth = ['getComments'];
/**
* Obtém comentários
* @param Request $request
* @return Response
* @throws BusinessException
*/
public function getComments(Request $request): Response
{
}
}
Comentários
Os atributos e funções da classe devem incluir comentários, incluindo uma visão geral, parâmetros e tipo de retorno.
Indentação
O código deve utilizar 4 espaços para indentação, em vez de usar tabulações.
Controle de Fluxo
As palavras-chave de controle de fluxo (if, for, while, foreach, etc.) devem ser seguidas por um espaço, e a chave de abertura do código de controle de fluxo deve estar na mesma linha que o parêntese de fechamento.
foreach ($users as $uid => $user) {
}
Nomes de Variáveis Temporárias
Recomenda-se nomear em camelCase, começando com letra minúscula (não é obrigatório).
$articleCount = 100;