คอมโพเนนต์การสร้างรหัสข้อผิดพลาด
คำอธิบาย
สามารถสร้างรหัสข้อผิดพลาดโดยอัตโนมัติตามกฎที่กำหนด
ตกลงกับพารามิเตอร์ code ในข้อมูลที่คืนคืน โดยทุกรหัสที่กำหนดเอง ค่าบวกแทนการให้บริการปกติ และค่าลบแทนการเกิดข้อผิดพลาด
ที่อยู่โปรเจค
https://github.com/teamones-open/response-code-msg
การติดตั้ง
composer require teamones/response-code-msg
การใช้
ไฟล์คลาส ErrorCode ที่ว่างเปล่า
- ที่อยู่ไฟล์ ./support/ErrorCode.php
<?php
/**
* ไฟล์ที่สร้างโดยอัตโนมัติ กรุณาอย่าแก้ไขด้วยตนเอง
* @Author:$Id$
*/
namespace support;
class ErrorCode
{
}
แฟ้มการตั้งค่า
รหัสข้อผิดพลาดจะถูกสร้างขึ้นโดยอัตโนมัติตามพารามิเตอร์ที่กำหนดด้านล่าง ตัวอย่างเช่น ระบุ 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
/**
* คลาสเซอวิสที่เกี่ยวกับการทำงานที่เกี่ยวข้องกับ navigation
*/
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;
}