Componente de Códigos de Erro Automáticos
Descrição
Capaz de manter automaticamente a geração de códigos de erro com base nas regras fornecidas.
Convenção: no dado retornado, o parâmetro code, todos os códigos personalizados são; números positivos representam serviço normal, números negativos representam serviço anômalo.
Endereço do Projeto
https://github.com/teamones-open/response-code-msg
Instalação
composer require teamones/response-code-msg
Uso
Arquivo de Classe ErrorCode Vazio
- Caminho do arquivo: ./support/ErrorCode.php
<?php
/**
* Arquivo gerado automaticamente, por favor, não modifique manualmente.
* @Author:$Id$
*/
namespace support;
class ErrorCode
{
}
Arquivo de Configuração
Os códigos de erro serão gerados automaticamente de acordo com os parâmetros configurados abaixo, por exemplo, se o current system_number = 201 e start_min_number = 10000, então o primeiro código de erro gerado será -20110001.
- Caminho do arquivo: ./config/error_code.php
<?php
return [
"class" => new \support\ErrorCode(), // Arquivo de classe ErrorCode
"root_path" => app_path(), // Diretório raiz do código atual
"system_number" => 201, // Identificador do sistema
"start_min_number" => 10000 // Faixa de geração do código de erro, por exemplo, 10000-99999
];
Adicionar Código de Geração Automática de Códigos de Erro em start.php
- Caminho do arquivo: ./start.php
// Colocar após Config::load(config_path(), ['route', 'container']);
// Gera os códigos de erro, apenas no modo APP_DEBUG
if (config("app.debug")) {
$errorCodeConfig = config('error_code');
(new \teamones\responseCodeMsg\Generate($errorCodeConfig))->run();
}
Usando no Código
No código abaixo, ErrorCode::ModelAddOptionsError é o código de erro, onde ModelAddOptionsError precisa ser escrito com a primeira letra maiúscula de acordo com a semântica atual.
Depois de escrever, você perceberá que não será utilizável; na próxima reinicialização, o código de erro correspondente será gerado automaticamente. Note que às vezes é necessário reiniciar duas vezes.
<?php
/**
* Classe de serviço para operações relacionadas à navegação
*/
namespace app\service;
use app\model\Demo as DemoModel;
// Importar o arquivo da classe ErrorCode
use support\ErrorCode;
class Demo
{
/**
* Adicionar
* @param $data
* @return array|mixed
* @throws \exception
*/
public function add($data): array
{
try {
$demo = new DemoModel();
foreach ($data as $key => $value) {
$demo->$key = $value;
}
$demo->save();
return $demo->getData();
} catch (\Throwable $e) {
// Exibir mensagem de erro
throw_http_exception($e->getMessage(), ErrorCode::ModelAddOptionsError);
}
return [];
}
}
Arquivo ./support/ErrorCode.php Após a Geração
<?php
/**
* Arquivo gerado automaticamente, por favor, não modifique manualmente.
* @Author:$Id$
*/
namespace support;
class ErrorCode
{
const LoginNameOrPasswordError = -20110001;
const UserNotExist = -20110002;
const TokenNotExist = -20110003;
const InvalidToken = -20110004;
const ExpireToken = -20110005;
const WrongToken = -20110006;
const ClientIpNotEqual = -20110007;
const TokenRecordNotFound = -20110008;
const ModelAddUserError = -20110009;
const NoInfoToModify = -20110010;
const OnlyAdminPasswordCanBeModified = -20110011;
const AdminAccountCannotBeDeleted = -20110012;
const DbNotExist = -20110013;
const ModelAddOptionsError = -20110014;
const UnableToDeleteSystemConfig = -20110015;
const ConfigParamKeyRequired = -20110016;
const ExpiryCanNotGreaterThan7days = -20110017;
const GetPresignedPutObjectUrlError = -20110018;
const ObjectStorageConfigNotExist = -20110019;
const UpdateNavIndexSortError = -20110020;
const TagNameAttNotExist = -20110021;
const ModelUpdateOptionsError = -20110022;
}