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