پرش به مطلب اصلی

سرویس مدیریت تب

مقدمه

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

ساختار JSON

ساختار استاندارد JSON برای تعریف یک سرویس سفارشی به شرح زیر است:

{
"setting": {
"customService": {
"className": "مسیر کامل کلاس سرویس",
"params": {
"parameter_key1": "parameter_value1",
"parameter_key2": "parameter_value2"
}
}
}
}
  • setting: این کلید، بخش اصلی تنظیمات شماست که سرویس سفارشی را به عنوان یکی از کلیدهای آن تعریف می‌کند.
  • customService: کلیدی که نشان‌دهنده سرویس سفارشی شماست.
  • className: مسیر کامل (فضای نام) کلاسی که به عنوان سرویس سفارشی استفاده می‌شود.
  • params: شامل پارامترهایی است که به سرویس سفارشی ارسال می‌شوند و در متد handle سرویس پردازش خواهند شد.

تعریف یک کلاس سرویس سفارشی

کلاس‌های سفارشی تعریف شده در JSON باید از یک رابط خاص پیروی کنند که اطمینان می‌دهد کلاس شما یک متد handle برای پردازش داده‌ها پیاده‌سازی می‌کند.

CustomServiceInterface

کلاس‌های سفارشی باید این رابط را پیاده‌سازی کنند:

namespace App\Contracts;

interface CustomServiceInterface
{
/**
* متد اصلی که سرویس سفارشی باید پیاده‌سازی کند
*
* @param array $params
* @return array
*/
public function handle(array $params): array;
}

پیاده‌سازی یک کلاس سفارشی

کلاسی که به عنوان سرویس سفارشی در JSON تعریف شده است باید متد handle را پیاده‌سازی کند، ورودی‌های params را پردازش کند و یک آرایه برگرداند. در اینجا یک مثال آورده شده است:

namespace App\Services;

use App\Contracts\CustomServiceInterface;

class ExampleCustomService implements CustomServiceInterface
{
/**
* پردازش پارامترهای ورودی و برگرداندن نتیجه
*
* @param array $params
* @return array
*/
public function handle(array $params): array
{
// پردازش پارامترها
return [
'status' => 'success',
'processed_params' => $params,
];
}
}

تعریف سرویس‌ها در تنظیمات (JSON)

برای تعریف یک سرویس سفارشی در تنظیمات، کافی است از ساختار JSON پیروی کنید و مسیر کامل کلاس و پارامترهای ورودی آن را به درستی تعریف کنید.

مثال عملی JSON

{
"setting": {
"customService": {
"className": "App\\Services\\ExampleCustomService",
"params": {
"param1": "value1",
"param2": "value2"
}
}
}
}
  • className: مسیر کامل به کلاس ExampleCustomService.
  • params: دو پارامتر ورودی، param1 و param2، که به سرویس ارسال می‌شوند.

پیاده‌سازی تنظیمات در تب‌ها

پس از تعریف سرویس سفارشی خود در تنظیمات JSON، سیستم به طور خودکار این کلاس را حل می‌کند و متد handle آن را اجرا می‌کند. داده‌های برگردانده شده از این متد سپس در تب‌های تنظیمات نمایش داده می‌شوند.

نکات مهم

  • سازگاری کلاس-رابط: اطمینان حاصل کنید که کلاس سرویس شما رابط CustomServiceInterface را پیاده‌سازی می‌کند.
  • مسیر کامل کلاس: در بخش className، مسیر کامل کلاس را با فضای نام صحیح مشخص کنید.
  • پارامترهای سفارشی: می‌توانید هر تعداد پارامتر را در بخش params تعریف کنید که در متد handle سرویس سفارشی پردازش خواهند شد.
  • در فایل نمای سفارشی خود، می‌توانید به خروجی کلاس سفارشی خود با استفاده از متغیر $settings دسترسی پیدا کنید.

نتیجه‌گیری

این ویژگی به شما امکان می‌دهد منطق خاصی را به تب‌های تنظیمات با تعریف سرویس‌های سفارشی و تنظیمات آنها در قالب JSON اضافه کنید، که مدیریت آنها را آسان می‌کند. سرویس‌های سفارشی انعطاف‌پذیری بالایی برای پردازش و نمایش داده‌ها فراهم می‌کنند و به شما امکان می‌دهند منطق مورد نظر خود را به سیستم اضافه کنید.

از این قابلیت برای پویا و قابل گسترش کردن سرویس‌های خود استفاده کنید!