Automatisch generierte Fehlercode-Komponente
Beschreibung
Es ermöglicht die automatische Verwaltung der Generierung von Fehlercodes basierend auf vorgegebenen Regeln.
Es wird vereinbart, dass im Rückgabetemplate der Parameter code verwendet wird. Alle benutzerdefinierten Codes: positive Zahlen stehen für einen normalen Dienst, negative Zahlen stehen für einen fehlerhaften Dienst.
Projektadresse
https://github.com/teamones-open/response-code-msg
Installation
composer require teamones/response-code-msg
Verwendung
Leere ErrorCode-Klassen-Datei
- Dateipfad ./support/ErrorCode.php
<?php
/**
* Automatisch generierte Datei, bitte nicht manuell ändern.
* @Author:$Id$
*/
namespace support;
class ErrorCode
{
}
Konfigurationsdatei
Fehlercodes werden automatisch entsprechend der unten konfigurierten Parameter inkrementell generiert, z. B. wenn die aktuelle system_number = 201 und start_min_number = 10000 ist, dann ist der generierte erste Fehlercode -20110001.
- Dateipfad ./config/error_code.php
<?php
return [
"class" => new \support\ErrorCode(), // ErrorCode-Klassen-Datei
"root_path" => app_path(), // Aktueller Code-Stammverzeichnis
"system_number" => 201, // Systemkennung
"start_min_number" => 10000 // Bereich für Fehlermeldungsgenerierung, z. B. 10000-99999
];
Fügen Sie den Code zur automatischen Fehlercode-Generierung in start.php hinzu
- Dateipfad ./start.php
// Nach Config::load(config_path(), ['route', 'container']); einfügen
// Generierung des Fehlercodes, nur im APP_DEBUG-Modus
if (config("app.debug")) {
$errorCodeConfig = config('error_code');
(new \teamones\responseCodeMsg\Generate($errorCodeConfig))->run();
}
Verwendung im Code
Im folgenden Code ist ErrorCode::ModelAddOptionsError der Fehlercode, wobei ModelAddOptionsError vom Benutzer selbst basierend auf den aktuellen Anforderungen semantisch in Großbuchstaben geschrieben werden muss.
Nachdem Sie es geschrieben haben, werden Sie feststellen, dass es nicht sofort verwendet werden kann. Nach dem nächsten Neustart wird der entsprechende Fehlercode automatisch generiert. Bitte beachten Sie, dass manchmal zwei Neustarts erforderlich sind.
<?php
/**
* Service-Klasse für navigationsbezogene Operationen
*/
namespace app\service;
use app\model\Demo as DemoModel;
// ErrorCode-Klassen-Datei einfügen
use support\ErrorCode;
class Demo
{
/**
* Hinzufügen
* @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) {
// Fehlerinformation ausgeben
throw_http_exception($e->getMessage(), ErrorCode::ModelAddOptionsError);
}
return [];
}
}
Generierte ./support/ErrorCode.php-Datei
<?php
/**
* Automatisch generierte Datei, bitte nicht manuell ändern.
* @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;
}