#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:
- متد تشخیص میدهد که ورودی عددی است.
SELECT type FROM charters WHERE id = 620را اجرا میکند. فرضاً نتیجهaccommodationاست.- بر اساس
type = 'accommodation'، نام جداول را تعیین میکند.
- Return:
php
[
'type' => 'accommodation',
'reservation' => 'charter_accommodation_reservation',
'calculation' => 'charter_accommodation_calculation'
]
سناریو ۲: دریافت نام جداول با ارائه مستقیم نوع
- Call:
CharterController::getTableCharter('route') - Action:
- متد تشخیص میدهد ورودی رشتهای است.
- بر اساس
type = 'route'، نام جداول را تعیین میکند.
- Return:
php
[
'type' => 'route',
'reservation' => 'charter_route_reservation',
'calculation' => 'charter_route_calculation'
]