مكون رموز الأخطاء التلقائية

الوصف

يمكنه الحفاظ تلقائيًا على إنشاء رموز الأخطاء بناءً على القواعد المعطاة.

يتم الاتفاق على أن يمثل معامل code في البيانات المعادة، حيث تمثل جميع الرموز المخصصة، الأعداد الموجبة الخدمة الطبيعية، بينما تمثل الأعداد السالبة الخدمة غير الطبيعية.

عنوان المشروع

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

التثبيت

composer require teamones/response-code-msg

الاستخدام

ملف Class ErrorCode فارغ

  • مسار الملف ./support/ErrorCode.php
<?php
/**
 * ملف تم إنشاؤه تلقائيًا، يرجى عدم تعديله يدويًا.
 * @Author:$Id$
 */
namespace support;

class ErrorCode
{
}

ملف التكوين

سيتم إنشاء رموز الأخطاء تلقائيًا وفقًا للمعلمات المكونة أدناه، على سبيل المثال، إذا كان current system_number = 201 و start_min_number = 10000، فإن أول رمز خطأ سيتم إنشاؤه هو -20110001.

  • مسار الملف ./config/error_code.php
<?php

return [
    "class" => new \support\ErrorCode(), // ملف فئة ErrorCode
    "root_path" => app_path(), // الدليل الجذري الحالي للشفرة
    "system_number" => 201, // تعريف النظام
    "start_min_number" => 10000 // نطاق إنشاء رموز الأخطاء مثل 10000-99999
];

إضافة كود إنشاء رموز الأخطاء التلقائية في start.php

  • مسار الملف ./start.php
// ضع هذا بعد Config::load(config_path(), ['route', 'container']); 

// إنشاء رموز الأخطاء، يتم إنشاؤها فقط في وضع APP_DEBUG
if (config("app.debug")) {
    $errorCodeConfig = config('error_code');
    (new \teamones\responseCodeMsg\Generate($errorCodeConfig))->run();
}

الاستخدام في الشيفرة

في الشيفرة أدناه، ErrorCode::ModelAddOptionsError هو رمز خطأ، حيث يجب على المستخدم كتابة ModelAddOptionsError بحروف أولية كبيرة بناءً على المعاني الحالية المطلوبة.

بعد كتابة ذلك، ستجد أنه لا يمكن استخدامه، ولكن بعد إعادة التشغيل التالية، سيتم إنشاء رمز الخطأ المقابل تلقائيًا. يرجى ملاحظة أنه قد تحتاج أحيانًا إلى إعادة التشغيل مرتين.

<?php
/**
 * فئة خدمة العمليات المتعلقة بالتنقل
 */

namespace app\service;

use app\model\Demo as DemoModel;

// استيراد ملف فئة ErrorCode
use support\ErrorCode;

class Demo
{
    /**
     * إضافة
     * @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) {
            // إخراج معلومات الخطأ
            throw_http_exception($e->getMessage(), ErrorCode::ModelAddOptionsError);
        }
        return [];
    }
}

ملف ./support/ErrorCode.php بعد الإنشاء

<?php
/**
 * ملف تم إنشاؤه تلقائيًا، يرجى عدم تعديله يدويًا.
 * @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;
}