راهنمای کنترلرها

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

کنترلر چیست؟

در فینچ، کنترلر کلاسی است که درخواست‌های HTTP را مدیریت می‌کند. کنترلر مسئول پردازش درخواست و تولید پاسخ است. کنترلرها برای سازماندهی منطق مرتبط با درخواست‌ها استفاده می‌شوند و می‌توانند به مسیرها متصل شوند تا درخواست‌های ورودی را پردازش کنند.

ساخت کنترلر

برای ساخت کنترلر باید کلاس Controller را گسترش دهید. در اینجا یک مثال از نحوه ساخت یک کنترلر ساده آورده شده است:

import 'package:finch/finch_route.dart';

class MyController extends Controller {
  MyController();

  @override
  Future<String> index() async {
    return rq.renderString(text: 'سلام دنیا');
  }
}

در این مثال، یک کنترلر به نام MyController ساخته‌ایم که از کلاس Controller ارث‌بری می‌کند. همچنین متد index را بازنویسی کرده‌ایم تا درخواست را مدیریت و پاسخ تولید کند. متد index زمانی فراخوانی می‌شود که درخواستی به مسیر مرتبط با این کنترلر ارسال شود.

استفاده از کنترلر

برای استفاده از کنترلر باید آن را به یک مسیر متصل کنید. این کار با تنظیم ویژگی controller در کلاس FinchRoute انجام می‌شود. در اینجا یک مثال از نحوه استفاده از کنترلر آورده شده است:

FinchRoute(
  path: '/',
  controller: MyController(),
);

در این مثال، یک مسیر تعریف کرده‌ایم که با مسیر ریشه (/) مطابقت دارد و کنترلر MyController را به آن متصل کرده‌ایم. زمانی که درخواستی به مسیر ریشه ارسال شود، متد index کنترلر اجرا و پاسخ تولید می‌شود.

نکته:

تابع index تابع پیش‌فرض کنترلر است. می‌توانید هر نامی برای تابع خود انتخاب کنید و آن را در تعریف مسیر استفاده کنید. مثال:

class MyController extends Controller {
  MyController();

  Future<String> myFunction() async {
    return rq.renderString(text: 'سلام دنیا');
  }
}
FinchRoute(
  path: '/',
  controller: MyController(),
  index: MyController().myFunction,
);