Otomatik Hata Kodu Bileşeni
Açıklama
Verilen kurallara göre otomatik olarak hata kodlarının oluşturulmasını sağlar.
Dönüş verilerinde yer alan code parametresi, tüm özelleştirilmiş kodların pozitif sayılar ile hizmetin normal olduğunu, negatif sayılar ile hizmetin anormal olduğunu belirtmektedir.
Proje Adresi
https://github.com/teamones-open/response-code-msg
Kurulum
composer require teamones/response-code-msg
Kullanım
Boş ErrorCode Sınıfı Dosyası
- Dosya yolu ./support/ErrorCode.php
<?php
/**
* Otomatik oluşturulmuş dosya, lütfen manuel olarak değiştirmeyin.
* @Author:$Id$
*/
namespace support;
class ErrorCode
{
}
Konfigürasyon Dosyası
Hata kodları, aşağıda yapılandırılmış parametrelere göre otomatik olarak artan bir şekilde oluşturulacaktır. Örneğin, mevcut system_number = 201, start_min_number = 10000 ise, oluşturulan ilk hata kodu -20110001 olacaktır.
- Dosya yolu ./config/error_code.php
<?php
return [
"class" => new \support\ErrorCode(), // ErrorCode sınıf dosyası
"root_path" => app_path(), // Mevcut kodun kök dizini
"system_number" => 201, // Sistem tanımlayıcı
"start_min_number" => 10000 // Hata kodu oluşturma aralığı Örneğin 10000-99999
];
start.php dosyasında otomatik hata kodu oluşturma kodlarını ekleme
- Dosya yolu ./start.php
// Config::load(config_path(), ['route', 'container']); sonrasında yerleştirin
// Hata kodu oluşturma, yalnızca APP_DEBUG modunda oluşturulur
if (config("app.debug")) {
$errorCodeConfig = config('error_code');
(new \teamones\responseCodeMsg\Generate($errorCodeConfig))->run();
}
Kodda Kullanım
Aşağıdaki kodda ErrorCode::ModelAddOptionsError bir hata kodudur. Burada ModelAddOptionsError kullanıcının mevcut ihtiyaçlarına göre anlamlı olarak baş harflerini büyük yazarak oluşturması gerekmektedir.
Yazdıktan sonra kullanılamadığını göreceksiniz. Bir sonraki yeniden başlatma işleminde otomatik olarak karşılık gelen hata kodu oluşturulacaktır. Dikkat, bazen iki kez yeniden başlatmanız gerekebilir.
<?php
/**
* Navigasyon ile ilgili işlemler servis sınıfı
*/
namespace app\service;
use app\model\Demo as DemoModel;
// ErrorCode sınıf dosyasını dahil et
use support\ErrorCode;
class Demo
{
/**
* Ekleme
* @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) {
// Hata bilgilerini çıkart
throw_http_exception($e->getMessage(), ErrorCode::ModelAddOptionsError);
}
return [];
}
}
Oluşan ./support/ErrorCode.php Dosyası
<?php
/**
* Otomatik oluşturulmuş dosya, lütfen manuel olarak değiştirmeyin.
* @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;
}