PHPackages                             saman9074/iranian-validation-suite - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. saman9074/iranian-validation-suite

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

saman9074/iranian-validation-suite
==================================

مجموعه جامع اعتبارسنجی و ابزارهای کمکی مرتبط با داده‌های ایرانی برای فریم‌ورک لاراول.

v1.5.0(12mo ago)10MITPHPPHP ^8.2CI failing

Since May 13Pushed 12mo ago1 watchersCompare

[ Source](https://github.com/saman9074/iranian-validation-suite)[ Packagist](https://packagist.org/packages/saman9074/iranian-validation-suite)[ RSS](/packages/saman9074-iranian-validation-suite/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (6)Versions (3)Used By (0)

مجموعه اعتبارسنجی ایرانی برای لاراول (Iranian Validation Suite for Laravel)
===========================================================================

[](#مجموعه-اعتبارسنجی-ایرانی-برای-لاراول-iranian-validation-suite-for-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/59baeb47f151ec9e0b5a4f4450306f39229a89f79a1b798c17097da295c12a4e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f73616d616e393037342f6972616e69616e2d76616c69646174696f6e2d73756974652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/saman9074/iranian-validation-suite)[![Total Downloads](https://camo.githubusercontent.com/d0be3b4e07aeb39ceb29adfa6fa1d8f07486e114843a2ee22e891ca07159bb8b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f73616d616e393037342f6972616e69616e2d76616c69646174696f6e2d73756974652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/saman9074/iranian-validation-suite)[![License: MIT](https://camo.githubusercontent.com/1b01ef0024ba0866c115986b895301f657c1b21fc29f05c4844b7f2e8d89204d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e7376673f7374796c653d666c61742d737175617265)](https://opensource.org/licenses/MIT)

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

**فاز فعلی: اعتبارسنجی آفلاین**

در حال حاضر، این پکیج بر روی ارائه قوانین اعتبارسنجی آفلاین تمرکز دارد که نیازی به اتصال به سرویس‌های آنلاین ندارند.

ویژگی‌های اصلی (فاز اول)
------------------------

[](#ویژگی‌های-اصلی-فاز-اول)

- مجموعه‌ای از قوانین اعتبارسنجی آماده برای:
    - کد ملی ایران (`iranian_national_id`)
    - شماره کارت بانکی (`iranian_bank_card`) - بر اساس الگوریتم لان
    - شماره شبا (`iranian_sheba`) - بر اساس استاندارد IBAN و Mod 97-10
    - کد پستی ۱۰ رقمی ایران (`iranian_postal_code`)
    - شماره موبایل ایران (`iranian_mobile_number`) - با بررسی پیش‌شماره‌های معتبر
- پیام‌های خطای قابل ترجمه (فارسی و انگلیسی به صورت پیش‌فرض).
- یک Facade کمکی (`IranianValidator`) برای اعتبارسنجی مستقیم مقادیر در کد.
- نصب و راه‌اندازی آسان با استفاده از Composer و قابلیت auto-discovery لاراول.
- سازگار با لاراول ۱۰ و ۱۱ و ۱۲ (نیازمند PHP 8.2 به بالا).

ویژگی‌های اصلی (فاز دوم)
------------------------

[](#ویژگی‌های-اصلی-فاز-دوم)

- به زودی در فاز دوم پروژه با اتصال به وب سرویس های شرکت های معتبر امکان استعلام های مختلف به بسته اضافه می گردد.
    - از جمله میتوان به سرویس های زیر اشاره نمود:
        - استعلام کد ملی و شماره همراه (سامانه شاهکار)
        - استعلام شماره کارت، تاریخ تولد و کد ملی
        - استعلام کد ملی و شماره حساب یا شبا
        - انطباق ویدئو و تصویر کارت ملی
        - و....

نصب
---

[](#نصب)

روش اول (در حال حاضر به علت تکمیل نبودن و عدم انتشار استفاده از این روش امکان پذیر نیست لطفا از روش دوم استفاده کنید) برای نصب پکیج از طریق Composer، دستور زیر را اجرا کنید:

```
composer require saman9074/iranian-validation-suite
```

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

در ابتدا کد زیر را در فایل composer.json قرار دهید:

```
"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/saman9074/iranian-validation-suite.git"
    }
],
```

همچنین در قسمت require-dev در فایل composer.json خط زیر را اضافه نمایید.

```
"saman9074/iranian-validation-suite" : "@dev"
```

سپس دستور زیر را در محیط ترمینال وارد نمایید.

```
composer update
or
composer update saman9074/iranian-validation-suite
```

این پکیج از قابلیت auto-discovery لاراول پشتیبانی می‌کند، بنابراین Service Provider و Facade ها به طور خودکار ثبت می‌شوند.

راه‌اندازی
----------

[](#راه‌اندازی)

۱. انتشار فایل‌های زبان (اختیاری):
==================================

[](#۱-انتشار-فایل‌های-زبان-اختیاری)

اگر می‌خواهید پیام‌های پیش‌فرض اعتبارسنجی را سفارشی کنید، می‌توانید فایل‌های زبان پکیج را منتشر کنید:

```
php artisan vendor:publish --provider="Saman9074\IranianValidationSuite\IranianValidationSuiteServiceProvider" --tag="iranian-validation-suite-lang"
```

فایل‌های زبان در مسیر resources/lang/vendor/iranian-validation-suite (یا lang/vendor/iranian-validation-suite در نسخه‌های جدیدتر لاراول) در پروژه شما کپی خواهند شد.

۲. انتشار فایل پیکربندی (اختیاری برای فاز اول):
===============================================

[](#۲-انتشار-فایل-پیکربندی-اختیاری-برای-فاز-اول)

فایل پیکربندی این پکیج (iranian-validation-suite.php) در حال حاضر بیشتر برای تنظیمات مربوط به فاز دوم (خدمات KYC آنلاین) کاربرد دارد. با این حال، اگر می‌خواهید آن را منتشر کنید:

```
php artisan vendor:publish --provider="Saman9074\IranianValidationSuite\IranianValidationSuiteServiceProvider" --tag="iranian-validation-suite-config"
```

فایل پیکربندی در مسیر config/iranian-validation-suite.php در پروژه شما کپی خواهد شد.

نحوه استفاده
------------

[](#نحوه-استفاده)

استفاده از قوانین اعتبارسنجی در Validator لاراول

شما می‌توانید از این قوانین اعتبارسنجی مانند سایر قوانین داخلی لاراول در آرایه $rules کنترلرها یا Form Request های خود استفاده کنید:

```
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

// ...

public function store(Request $request)
{
    $validator = Validator::make($request->all(), [
        'national_id' => 'required|iranian_national_id',
        'card_number' => 'nullable|iranian_bank_card',
        'sheba' => 'required|iranian_sheba',
        'postal_code' => 'required|iranian_postal_code',
        'mobile' => 'required|iranian_mobile_number',
        'home_phone' => 'nullable|iranian_landline_phone',
    ]);

    if ($validator->fails()) {
        return redirect()->back()->withErrors($validator)->withInput();
    }

    // ادامه پردازش داده‌های معتبر
}
```

استفاده از Facade برای اعتبارسنجی مستقیم
========================================

[](#استفاده-از-facade-برای-اعتبارسنجی-مستقیم)

پکیج یک Facade به نام IranianValidator ارائه می‌دهد که می‌توانید از آن برای بررسی مستقیم اعتبار یک مقدار استفاده کنید:

```
use Saman9074\IranianValidationSuite\Facades\IranianValidator;

// ...

$nationalId = '0012345678';
if (IranianValidator::isNationalIdValid($nationalId)) {
    // کد ملی معتبر است
} else {
    // کد ملی نامعتبر است
}

$mobile = '09121112233';
if (IranianValidator::isMobileNumberValid($mobile)) {
    // شماره موبایل معتبر است
}

// سایر متدهای موجود در Facade:
// IranianValidator::isBankCardValid($value)
// IranianValidator::isShebaValid($value)
// IranianValidator::isPostalCodeValid($value)
// IranianValidator::isLandlinePhoneNumberValid($value)
```

لیست قوانین اعتبارسنجی آفلاین
-----------------------------

[](#لیست-قوانین-اعتبارسنجی-آفلاین)

- iranian\_national\_id:
    - اعتبارسنجی کد ملی ۱۰ رقمی ایران.
- iranian\_bank\_card:
    - اعتبارسنجی شماره کارت بانکی ۱۶ رقمی ایران (الگوریتم لان).
- iranian\_sheba:
    - اعتبارسنجی شماره شبا ۲۴ رقمی (بدون IR) یا ۲۶ کاراکتری (با IR) ایران.
- iranian\_postal\_code:
    - اعتبارسنجی کد پستی ۱۰ رقمی ایران (با یا بدون خط تیره).
        - کدهای تماماً صفر، تماماً یکسان، 1234567890 و 9876543210 نامعتبر در نظر گرفته می‌شوند.
- iranian\_mobile\_number:
    - اعتبارسنجی شماره موبایل ایران (۱۱ رقمی با پیش‌شماره 09 یا ۱۰ رقمی با پیش‌شماره 9). پیش‌شماره‌های رایج اپراتورها بررسی می‌شوند.

بومی‌سازی (Localization)
------------------------

[](#بومی‌سازی-localization)

پیام‌های خطا به طور پیش‌فرض برای زبان‌های فارسی (fa) و انگلیسی (en) ارائه شده‌اند. شما می‌توانید با انتشار فایل‌های زبان (همانطور که در بخش راه‌اندازی توضیح داده شد) این پیام‌ها را ویرایش کرده یا زبان‌های دیگری را اضافه کنید.

مشارکت
------

[](#مشارکت)

از مشارکت شما در توسعه این پکیج استقبال میگردد. جهت همکاری لطفا به آدرس ایمیل  پیام خود را ارسال کنید.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance50

Moderate activity, may be stable

Popularity2

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

2

Last Release

362d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/763595a7305886aff8910220bcb599a3d55bf6c06847ab39ac181630461b1754?d=identicon)[saman9074](/maintainers/saman9074)

---

Top Contributors

[![saman9074](https://avatars.githubusercontent.com/u/8271580?v=4)](https://github.com/saman9074 "saman9074 (15 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/saman9074-iranian-validation-suite/health.svg)

```
[![Health](https://phpackages.com/badges/saman9074-iranian-validation-suite/health.svg)](https://phpackages.com/packages/saman9074-iranian-validation-suite)
```

###  Alternatives

[spatie/laravel-honeypot

Preventing spam submitted through forms

1.6k6.0M60](/packages/spatie-laravel-honeypot)[propaganistas/laravel-phone

Adds phone number functionality to Laravel based on Google's libphonenumber API.

3.0k35.7M107](/packages/propaganistas-laravel-phone)[proengsoft/laravel-jsvalidation

Validate forms transparently with Javascript reusing your Laravel Validation Rules, Messages, and FormRequest

1.1k2.3M49](/packages/proengsoft-laravel-jsvalidation)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

71510.9M66](/packages/laravel-mcp)[axlon/laravel-postal-code-validation

Worldwide postal code validation for Laravel and Lumen

3853.3M1](/packages/axlon-laravel-postal-code-validation)[wendelladriel/laravel-validated-dto

Data Transfer Objects with validation for Laravel applications

759569.4k13](/packages/wendelladriel-laravel-validated-dto)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
