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;
}