کلاسهای تک کار در لاراول
بعضی اوقات ما به جهت کدنویسی تمیز نیازداریمکنترلری تعریف کنیم که فقط یک اکشن را کنترل کنه…
برای اینکار ما از متد __ invoke استفاده میکنیم که از magic method های زبان php هستند . SPR که مخفف Single Responsibility Principle است( اصل اول solid ) و به عنوان کلاسی که فقط یک دلیل برای تغییر دارد، در PHP تعریف شده است که ما در لاراول آن رو با SAC(Single Action Controller) اجرا میکنیم .
برای پیاده سازی SRP در لاراول، یکی از راه ها استفاده از کنترلرهای تک اقدام هست. کنترلر تنها یک متد __invoke داره و میتونیم مستقیماً از نام کنترلر در مسیر استفاده کنیم.
در ابتدا روت به این صورت تعریف میشه:
Route::get('/', HomeController::class);
و بعد کنترلر اون رو هم میتونید با این دستور تعریف کنیم :
php artisan make:controller --invokable HomeController
که در نهایت فایل ما به این صورت میشه :
... public function __invoke(Request $request) { /// }