Componente de generación automática de códigos de error

Descripción

Capaz de generar automáticamente códigos de error manteniendo según las reglas dadas.

En los datos de retorno, el parámetro de código, todos los códigos personalizados, los números positivos representan un servicio normal, los números negativos representan una excepción del servicio.

Dirección del proyecto

https://github.com/teamones-open/response-code-msg

Instalación

composer require teamones/response-code-msg

Uso

Archivo de clase ErrorCode vacío

  • Ruta del archivo: ./support/ErrorCode.php
<? php
/**
* Archivo generado, no modifique manualmente.
* @Autores: $Id$
*/
namespace support;

class ErrorCode
{
}

Archivo de configuración

Los códigos de error se generarán automáticamente según los parámetros configurados a continuación. Por ejemplo, si system_number = 201 y start_min_number = 10000, el primer código de error generado será -20110001.

  • Ruta del archivo: ./config/error_code.php
<?php

return [
    "class" => new \support\ErrorCode(), // Archivo de clase ErrorCode
    "root_path" => app_path(), // Directorio raíz del código actual
    "system_number" => 201, // Identificación del sistema
    "start_min_number" => 10000 // Rango de generación de códigos de error, por ejemplo, 10000-99999
];

Agregar código de inicio de generación automática de códigos de error en start.php

  • Ruta del archivo: ./start.php
// Colocar después de Config::load(config_path(), ['route', 'container']);

// Generar códigos de error, solo en modo APP_DEBUG
if (config("app.debug")) {
    $errorCodeConfig = config('error_code');
    (new \teamones\responseCodeMsg\Generate($errorCodeConfig))->run();
}

Uso en el código

En el siguiente código, ErrorCode::ModelAddOptionsError es el código de error, donde ModelAddOptionsError debe ser escrito en mayúscula según la semántica y el requisito actual del usuario.

Después de escribirlo, descubrirá que no se puede usar, la próxima vez que reinicie, se generará el código de error correspondiente. A veces es necesario reiniciar dos veces.

<?php
/**
* Clase de servicio para operaciones relacionadas con la navegación
*/

namespace app\service;

use app\model\Demo as DemoModel;

// Importar archivo de clase ErrorCode
use support\ErrorCode;

class Demo
{
    /**
    * Agregar
    * @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) {
            // Mostrar información de error
            throw_http_exception($e->getMessage(), ErrorCode::ModelAddOptionsError);
        }
        return [];
    }
}

Archivo ./support/ErrorCode.php generado después de la generación

<?php
/**
* Archivo generado, no modifique manualmente.
* @Autores: $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;
}