Componente de Código de Error Generado Automáticamente
Descripción
Capaz de mantener automáticamente la generación de códigos de error según las reglas dadas.
Se conviene que el parámetro code en los datos devueltos, todos los códigos personalizados, números positivos representan un servicio normal, y números negativos representan un servicio anormal.
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 automáticamente, no lo modifique manualmente.
* @Author:$Id$
*/
namespace support;
class ErrorCode
{
}
Archivo de Configuración
Los códigos de error se generarán automáticamente de acuerdo a los parámetros configurados a continuación, por ejemplo, si system_number = 201 y start_min_number = 10000, entonces 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
];
Añadir Código para Generar Códigos de Error al start.php
- Ruta del archivo ./start.php
// Colocar después de Config::load(config_path(), ['route', 'container']);
// Generar códigos de error, solo se generan 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 por el usuario según la necesidad actual con la primera letra en mayúscula.
Después de escribirlo, notarás que no se puede usar, pero al reiniciar nuevamente se generará automáticamente el código de error correspondiente. Ten en cuenta que 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 el archivo de clase ErrorCode
use support\ErrorCode;
class Demo
{
/**
* Añadir
* @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) {
// Salida de información de error
throw_http_exception($e->getMessage(), ErrorCode::ModelAddOptionsError);
}
return [];
}
}
Archivo ./support/ErrorCode.php Después de la Generación
<?php
/**
* Archivo generado automáticamente, no lo 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;
}