فهرست مستندات پروژه

کدهای خطا

Abzar0.8.1مشاهده منبعفارسی / انگلیسی

کدهای ErrorCode و پیام‌های دقیق فارسی کتابخانه.

برای شرط برنامه از case یا مقدار Eram\Abzar\Validation\ErrorCode استفاده کنید؛ متن پیام ممکن است تغییر کند. مقدارهایی مثل NATIONAL_ID.EMPTY بخشی از API هستند و حذف یا تغییر نام آن‌ها تغییر ناسازگار محسوب می‌شود. سیاست سازگاری را ببینید.

$code->message() پیام فارسی جدول را می‌دهد. بعضی کدها عمدا پیام یکسان دارند، ولی برنامه می‌تواند دلیل‌ها را از هم جدا کند.

نوع نتیجه

  • خطا در errorCodes() است؛ isValid() برابر false می‌شود.
  • هشدار در warningCodes() است؛ ورودی معتبر است ولی lookup کامل نیست. isStrictlyValid() برابر false است. مقدار lookup معمولا null است، جز حرف ناشناخته پلاک که PlateType::OTHER می‌دهد.
  • exception از AbzarException ارث می‌برد و کد آن با errorCode() خوانده می‌شود. در ValidationException، result() همه خطاها را می‌دهد.
use Eram\Abzar\Validation\ErrorCode;
use Eram\Abzar\Validation\NationalId;

$r = NationalId::validate('1234567890');
$r->errorCodes();              // [ErrorCode::NATIONAL_ID_INVALID_CHECKSUM]
$r->errorCodes()[0]->value;    // 'NATIONAL_ID.INVALID_CHECKSUM'
$r->errorCodes()[0]->message(); // 'کد ملی نامعتبر است'

نمونه کامل مدیریت exception در خطاها و هشدارها آمده است.

اعتبارسنج‌ها

کدپیام دقیق کتابخانهAPIنوع
NATIONAL_ID.EMPTYکد ملی نمی‌تواند خالی باشدNationalIdخطا
NATIONAL_ID.WRONG_LENGTHکد ملی باید ۱۰ رقم باشدNationalIdخطا
NATIONAL_ID.LIKELY_TRUNCATEDکد ملی باید ۱۰ رقم باشد؛ ممکن است صفرهای ابتدایی حذف شده باشدNationalIdخطا
NATIONAL_ID.ALL_SAME_DIGITSکد ملی نامعتبر استNationalIdخطا
NATIONAL_ID.SEQUENTIAL_DIGITSکد ملی نامعتبر استNationalIdخطا
NATIONAL_ID.MIDDLE_ZEROSکد ملی نامعتبر استNationalIdخطا
NATIONAL_ID.INVALID_CHECKSUMکد ملی نامعتبر استNationalIdخطا
NATIONAL_ID.UNKNOWN_CITY_CODEمحل صدور کد ملی شناسایی نشدNationalIdهشدار
CARD_NUMBER.EMPTYشماره کارت نمی‌تواند خالی باشدCardNumberخطا
CARD_NUMBER.WRONG_LENGTHشماره کارت باید ۱۶ رقم باشدCardNumberخطا
CARD_NUMBER.INVALID_CHECKSUMشماره کارت نامعتبر استCardNumberخطا
CARD_NUMBER.ALL_SAME_DIGITSشماره کارت نامعتبر استCardNumberخطا
CARD_NUMBER.UNKNOWN_BINبانک صادرکننده شناسایی نشدCardNumberهشدار
IBAN.EMPTYشماره شبا نمی‌تواند خالی باشدIbanخطا
IBAN.MISSING_PREFIXشماره شبا باید با IR شروع شودIbanخطا
IBAN.WRONG_LENGTHشماره شبا باید ۲۶ کاراکتر باشد (IR + ۲۴ رقم)Ibanخطا
IBAN.INVALID_CHECKSUMشماره شبا نامعتبر استIbanخطا
IBAN.UNKNOWN_BANKبانک این شماره شبا شناسایی نشدIbanهشدار
PHONE_NUMBER.EMPTYشماره تلفن نمی‌تواند خالی باشدPhoneNumberخطا
PHONE_NUMBER.INVALID_FORMATشماره تلفن باید یک شماره موبایل یا تلفن ثابت ایرانی معتبر باشدPhoneNumberخطا
PHONE_NUMBER.UNKNOWN_OPERATORاپراتور این شماره شناسایی نشدPhoneNumberهشدار
PHONE_NUMBER.UNKNOWN_AREA_CODEپیش‌شماره این تلفن ثابت شناسایی نشدPhoneNumberهشدار
LEGAL_ID.EMPTYشناسه حقوقی نمی‌تواند خالی باشدLegalIdخطا
LEGAL_ID.WRONG_LENGTHشناسه حقوقی باید ۱۱ رقم باشدLegalIdخطا
LEGAL_ID.MIDDLE_ZEROSشناسه حقوقی نامعتبر استLegalIdخطا
LEGAL_ID.INVALID_CHECKSUMشناسه حقوقی نامعتبر استLegalIdخطا
POSTAL_CODE.EMPTYکد پستی نمی‌تواند خالی باشدPostalCodeخطا
POSTAL_CODE.WRONG_LENGTHکد پستی باید ۱۰ رقم باشدPostalCodeخطا
POSTAL_CODE.INVALID_PATTERNکد پستی نامعتبر استPostalCodeخطا
BILL_ID.EMPTYشناسه قبض نمی‌تواند خالی باشدBillIdخطا
BILL_ID.WRONG_LENGTHشناسه قبض باید بین ۶ تا ۱۳ رقم باشدBillIdخطا
BILL_ID.INVALID_CHECKSUMشناسه قبض نامعتبر استBillIdخطا
BILL_ID.PAYMENT_MISMATCHشناسه پرداخت با شناسه قبض مطابقت نداردBillIdخطا
BILL_ID.PAYMENT_EMPTYشناسه پرداخت نمی‌تواند خالی باشدBillIdخطا
BILL_ID.PAYMENT_WRONG_LENGTHشناسه پرداخت باید حداقل ۶ رقم باشدBillIdخطا
PLATE_NUMBER.EMPTYشماره پلاک نمی‌تواند خالی باشدPlateNumberخطا
PLATE_NUMBER.INVALID_FORMATقالب شماره پلاک نامعتبر استPlateNumberخطا
PLATE_NUMBER.UNKNOWN_LETTERحرف میانی پلاک شناسایی نشدPlateNumberهشدار
PLATE_NUMBER.UNKNOWN_CITY_CODEکد شهر پلاک شناسایی نشدPlateNumberهشدار

شرایط هر خطا در راهنمای کد ملی، کارت، شبا، تلفن، شناسه حقوقی، کد پستی، قبض و پلاک توضیح داده شده است.

formatterها، پول و محیط اجرا

کدپیام دقیق کتابخانهAPIنوع
NUMBER_FORMATTER.INVALID_FORMATمقدار ورودی عددی معتبر نیستNumberFormatter::withSeparators(), Currency::format()exception: FormatException
NUMBER_TO_WORDS.OUT_OF_RANGEمقدار ورودی برای تبدیل به حروف خارج از محدوده پشتیبانی شده استNumberToWords::convert()exception: FormatException
NUMBER_TO_WORDS.PRECISION_LOSSدقت عدد اعشاری از محدوده شناور PHP بیشتر است؛ مقدار را به‌صورت رشته ارسال کنیدNumberToWords::convert()exception: FormatException
ORDINAL_NUMBER.NON_POSITIVEعدد ترتیبی باید بزرگ‌تر از صفر باشدOrdinalNumber::toWord(), toShort()exception: FormatException
ORDINAL_NUMBER.EMPTY_INPUTورودی نمی‌تواند خالی باشدOrdinalNumber::addSuffix()exception: FormatException
TIME_AGO.INVALID_TIMESTAMPتاریخ ورودی قابل تبدیل نیستTimeAgoexception: FormatException
AMOUNT.NEGATIVEمبلغ نمی‌تواند منفی باشدAmountexception: MoneyException
AMOUNT.OVERFLOWمبلغ از حداکثر مقدار قابل نمایش بیشتر استAmountexception: MoneyException
HTML.SEGMENTATION_FAILEDپردازش متن HTML ناموفق بودDigitConverter::convertContent(), CharNormalizer::normalizeContent()exception: FormatException
VALIDATION.FAILEDاعتبارسنجی ناموفق بودValidationException::fromResult()exception: ValidationException
FAKE.INVALID_ARGUMENTآرگومان ورودی برای تولید داده آزمایشی نامعتبر استمتدهای ::fake()exception: ValidationException
ENV.MISSING_EXT_INTLاین قابلیت به افزونهٔ ext-intl نیاز داردPersianCollator, CharNormalizer(normalizeToNfc: true)exception: EnvironmentException

VALIDATION.FAILED کد جایگزین است. ValidationException::fromResult() وقتی نتیجه کدی ندارد، مثلا از خطاهای string ساخته شده است، از آن استفاده می‌کند.

مطالب مرتبط: مدیریت خطا، اعتبارسنجی.

پیام NUMBER_TO_WORDS.PRECISION_LOSS عینا از کتابخانه آمده، اما NumberToWords::convert() فقط int|float می‌گیرد. دادن string فارسی یا decimal با دقت دلخواه راه‌حل پشتیبانی‌شده نیست. از integer در محدوده مجاز یا روش جداگانه برای اعشار استفاده کنید. نمایش عدد را ببینید.

جستجو در مستندات

در همه پروژه‌ها جستجو کنید. با بستن این پنجره به راهنما برمی‌گردید.

Tab برای جابه‌جایی · Enter برای باز کردنEsc برای بستن