Skip to main content
#P1100

Function getTableCharter

·  هدف:

این متد استاتیک به عنوان یک ابزار کمکی حیاتی برای تعیین نام جداول مرتبط با یک چارتر عمل می‌کند. با توجه به اینکه سیستم از جداول متفاوتی برای ذخیره‌سازی رزروها و محاسبات بر اساس نوع چارتر (route یا accommodation) استفاده می‌کند، این تابع وظیفه دارد بر اساس ورودی (که می‌تواند شناسه چارتر یا نام نوع آن باشد)، نام صحیح جداول reservation و calculation را بازگرداند. این کار از تکرار کد جلوگیری کرده و قابلیت نگهداری سیستم را به شدت افزایش می‌دهد، زیرا منطق انتخاب نام جدول در یک مکان متمرکز شده است.

ویژگی‌ها توضیحات
هدف کلی تعیین نام جداول reservation و calculation بر اساس نوع چارتر.
متد استاتیک قابل فراخوانی در سرتاسر پروژه بدون نیاز به نمونه‌سازی (CharterController::getTableCharter(...)).
ورودی منعطف پذیرش شناسه عددی چارتر (برای واکشی نوع از دیتابیس) یا نام رشته‌ای نوع (route, accommodation).
متمرکزسازی منطق جلوگیری از تکرار بلوک‌های if-else برای انتخاب نام جدول در متدهای مختلف.
خروجی ساختاریافته بازگرداندن یک آرایه با کلیدهای ثابت (type, reservation, calculation).

·     ورودی‌ها (پارامتر‌ها):

 

توضیحات موقعیت نوع داده نام پارمتر
شناسه چارتر یا نام نوع چارتر (مثلاً ‘route’). Parameter integer or string $data
(استفاده نشده) این پارامتر در کد وجود دارد ولی در منطق فعلی استفاده نمی‌شود. Parameter string $subType

·     خروجی (Return):

 

توضیحات نوع داده
یک آرایه انجمنی شامل سه کلید: type (نام نوع چارتر)، reservation (نام جدول رزروها)، و calculation (نام جدول محاسبات). array

·  مثال استفاده / سناریو:

سناریو ۱: دریافت نام جداول برای یک چارتر اقامتی با شناسه

  • Call: CharterController::getTableCharter(620)
  • Action:
  1. متد تشخیص می‌دهد که ورودی عددی است.
  2. SELECT type FROM charters WHERE id = 620 را اجرا می‌کند. فرضاً نتیجه accommodation است.
  3. بر اساس type = 'accommodation'، نام جداول را تعیین می‌کند.
  • Return:
php
    [
        'type' => 'accommodation',
        'reservation' => 'charter_accommodation_reservation',
        'calculation' => 'charter_accommodation_calculation'
    ]

سناریو ۲: دریافت نام جداول با ارائه مستقیم نوع

  • Call: CharterController::getTableCharter('route')
  • Action:
  1. متد تشخیص می‌دهد ورودی رشته‌ای است.
  2. بر اساس type = 'route'، نام جداول را تعیین می‌کند.
  • Return:
php
    [
        'type' => 'route',
        'reservation' => 'charter_route_reservation',
        'calculation' => 'charter_route_calculation'
    ]