enaxon/rtly-kit

RTLY-Kit

جعبه‌ابزار فارسی و عربی برای PHP

تقویم جلالی، هجری و عبری، اعتبارسنجی‌های ایرانی، اعداد و متن فارسی و عربی، تعطیلات و اوقات شرعی در یک کتابخانهٔ typed و immutable. یکپارچگی با Carbon و لاراول اختیاری است.

فقط PHP نسخهٔ 8.2 یا بالاتر لازم است. مجوز MIT.

نصب

با Composer نصب کنید و بلافاصله استفاده کنید؛ فایل تنظیمات یا مرحلهٔ انتشار وجود ندارد.

composer require enaxon/rtly-kit

نمونهٔ سی‌ثانیه‌ای

use function RtlyKit\{jdate, to_persian, is_national_code};

echo jdate('2026-03-21')->format('l j F Y');   // شنبه 1 فروردین 1405
echo to_persian(1405);                         // ۱۴۰۵
var_dump(is_national_code('0499370899'));      // bool(true)

در یک نگاه

این اعداد هنگام ساخت سایت از خودِ کد شمرده می‌شوند.

  • ۳تقویم
  • ۶اعتبارسنج
  • ۲۷تابع کمکی
  • ۶روش اوقات شرعی
  • ۳زبان پیام‌های اعتبارسنجی
  • ۲۹راهنما

محدودیت‌ها را صادقانه بخوانید

جدول ام‌القری، تعطیلات مذهبی ایران (که با رؤیت هلال تعیین می‌شود) و اوقات شرعی دقت مشخصی دارند و بعضی جدول‌ها فقط با دو منبع تأیید شده‌اند. پیش از استفاده در محیط واقعی، صفحهٔ دقت و منبع داده‌ها را ببینید.

دقت و منبع داده‌ها →

راهنماها بر اساس موضوع

از هر موضوع شروع کنید؛ ترتیب فهرست از ساده به مرجع است.

شروع کار

نصب و اولین اجرا.

شروع سریع

RTLY-Kit را با Composer نصب کنید و در چند دقیقه یک تاریخ جلالی بسازید، کد ملی را بررسی کنید و اولین خطای کتابخانه را بگیرید.

نصب

پیش‌نیازها، نصب با Composer یا Docker، بخش‌های اختیاری Carbon و Laravel، نسخه‌های پشتیبانی‌شده، آزمودن نصب و حذف کامل بسته.

تقویم‌ها

جلالی، هجری و عبری؛ ساخت، قالب‌بندی، مقایسه و تبدیل.

تقویم جلالی

کلاس تغییرناپذیر Jalali برای تاریخ شمسی. ساخت و خواندن تاریخ، قالب‌بندی با توکن‌های date()، جابه‌جایی، مقایسه و اختلاف، همراه با بازهٔ سال و رفتار خطاها.

تقویم هجری

کلاس تغییرناپذیر Hijri با جدول ماه‌های ام‌القری و گونهٔ حسابی Tabular. ساخت و خواندن تاریخ، قالب‌بندی به عربی و فارسی و انگلیسی، جابه‌جایی، مقایسه و اختلاف.

تقویم عبری

کلاس تغییرناپذیر Hebrew با شمارهٔ ترتیبی ماه‌ها، آدار اول و دوم در سال کبیسه و نام ماه به انگلیسی و عبری و فارسی. ساخت، خواندن، قالب‌بندی، جابه‌جایی و اختلاف تاریخ.

تبدیل و مقایسهٔ تاریخ‌ها

قرارداد مشترک CalendarDate در Jalali و Hijri و Hebrew، تبدیل تاریخ بین تقویم‌ها، و مقایسه و اختلاف بین تقویم‌ها و منطقه‌های زمانی مختلف.

ماکروهای Carbon

بخش اختیاری برای Carbon. هر شیء Carbon را به تاریخ جلالی، هجری یا عبری تبدیل کنید و از اجزای تقویم، Carbon بسازید. فهرست ماکروها، نوع خروجی و خطاها.

اعتبارسنجی

کد ملی، شبا، کارت بانکی، موبایل، کد پستی و پلاک با نتیجهٔ ساخت‌یافته.

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

شش اعتبارسنج ایرانی چطور کار می‌کنند. قرارداد مشترک Validator، شیء Result، کدهای خطای پایدار، یکسان‌سازی ورودی و سقف اندازه.

کد ملی

اعتبارسنجی کد ملی ایران با رقم کنترل پیمانهٔ ۱۱، پذیرش رقم‌های فارسی و عربی و خواندن سرنخ محل صدور.

شبا و کارت بانکی

اعتبارسنجی شمارهٔ شبا (IBAN) با ISO 7064 mod-97-10 و شمارهٔ کارت بانکی با چک‌سام Luhn، و پیدا کردن بانک صادرکننده.

موبایل، کدپستی و پلاک

اعتبارسنجی شمارهٔ موبایل ایران در همهٔ شکل‌های رایج، کدپستی و پلاک خودرو، همراه با اپراتور، تخصیص پیش‌شماره و تقسیم پلاک به بخش‌ها.

اعداد و متن

ارقام، جداکنندهٔ هزارگان، عدد به حروف، نرمال‌سازی و تشخیص متن.

رقم‌ها و قالب‌بندی عدد

تبدیل رقم‌های انگلیسی، فارسی و عربی-هندی به هم، قالب‌بندی عدد با جداکنندهٔ فارسی و ساختن عدد ترتیبی فارسی، با سقف‌ها و حالت‌های مرزی.

عدد به حروف

نوشتن عدد صحیح با حروف فارسی (تا 10^21) و خواندن دوبارهٔ عدد از روی حروف با fromWords(). عدد به حروف عربی در صفحهٔ جدا توضیح داده شده است.

عدد به حروف عربی

نوشتن عدد با حروف عربی فصیح، با جنس معدود، حالت اعرابی، اعراب‌گذاری و عدد ترتیبی. هر عدد صحیح زیر 10^27.

ابزارهای متن

یکسان‌سازی متن فارسی و عربی، اصلاح نیم‌فاصله، تشخیص خط و جهت متن و ساخت اسلاگ برای نشانی اینترنتی، با رفتار دقیق هر ابزار.

تعطیلات و اوقات شرعی

تعطیلات رسمی ایران و محاسبهٔ اوقات شرعی.

تعطیلات رسمی ایران

تعطیلات رسمی ایران را برای هر تاریخ جلالی بررسی کنید، فهرست کل سال را بگیرید و روز کاری بعدی را پیدا کنید. تاریخ‌های مذهبی ۱۳۹۴ و ۱۳۹۶ تا ۱۴۰۵ رسمی‌اند.

تقویم تعطیلات

با HolidayCalendar تعطیلات را با رؤیت هلال و تقویم سازمان خودتان تطبیق بدهید. جابه‌جایی روز، شروع ماه قمری، افزودن و حذف تعطیلی، و دیدن منبع هر تاریخ.

اوقات شرعی

اذان صبح، طلوع، ظهر، عصر، مغرب و عشا را برای هر مکان با شش روش حساب کنید. عرض‌های بالا، تنظیم دستی دقیقه‌ها و آنچه با جدول‌های منتشرشده سنجیده‌ایم.

لاراول

سرویس‌پرووایدر، قواعد اعتبارسنجی، فاساد و کست الکوئنت.

راه‌اندازی Laravel

RTLY-Kit چطور به Laravel وصل می‌شود. شناسایی خودکار بسته، کار service provider، facade به نام Jalali، پیام‌های فارسی و انگلیسی و عربی که می‌توانید عوض کنید، و تنظیمات تعطیلات.

قانون‌های اعتبارسنجی و cast در Eloquent

قانون‌های اعتبارسنجی ایرانی را در فرم‌های Laravel به کار ببرید، تاریخ جلالی را با JalaliCast در مدل‌های Eloquent ذخیره کنید و در Blade نشان بدهید.

مرجع

توابع کمکی، خطاها، پایداری API، دقت داده‌ها، محدودیت‌ها و ارتقا.

توابع کمکی و سراسری

۲۷ تابع کمکی در فضای‌نام، روش وارد کردن آن‌ها و Globals::register() اختیاری که نام‌های کوتاه سراسری را بدون عوض کردن تابع‌های شما اضافه می‌کند.

مدیریت خطا

کدام فراخوانی‌ها خطا پرتاب می‌کنند و کدام نه، سلسله‌مراتب خطاها، مقدارهای پایدار ErrorCode و روش درست گرفتن و ثبت خطا.

پایداری API

به چه چیزهایی می‌توانید تکیه کنید، چه چیزهایی داخلی است، نسخه‌گذاری قبل و بعد از ۱٫۰ و نسخه‌های پشتیبانی‌شدهٔ PHP، Laravel و Carbon.

دقت و داده

هر جدول داده از کجا آمده، با چه چیزی و کی مقایسه‌اش کرده‌ایم و نتیجه یعنی چه. پیش از تکیه بر نتیجه‌ها در محیط واقعی بخوانید.

بنچمارک

یک ریزبنچمارک کوچک از RTLY-Kit در برابر morilog/jalali، با روش کامل، نکته‌ها و یک دستور برای تکرار آن روی ماشین خودتان.

سقف‌ها

همهٔ سقف‌ها در یک صفحه. بازهٔ سال تقویم‌ها، سقف اندازهٔ ورودی، بازهٔ عدد به حروف، بازهٔ ام‌القری، بازهٔ تنظیم‌ها و مرزهای عددی دیگر کتابخانه.

عیب‌یابی و پرسش‌های متداول

جواب پرسش‌هایی که واقعاً پیش می‌آید. تابع کمکی پیدا نمی‌شود، روز هفته، سال در رشته، منطقهٔ زمانی، ماکروهای Carbon، cast در Eloquent، شمارهٔ موبایل، اوقات شرعی و تعطیلات.

راهنمای ارتقا

تغییرهایی که پیش از نسخهٔ ۱٫۰ ممکن است روی کد شما اثر بگذارند، با مثال قبل و بعد و گام‌های مهاجرت، و نکته‌های مهم تغییرنامهٔ سری 0.x.

راستی‌آزمایی انتشارها

چطور با چک‌سام و گواهی خاستگاه ساخت بررسی کنید که آرشیو یک انتشار همان فایلی است که گردش‌کار انتشار ساخته، و این با نصب از راه Composer چه ربطی دارد.