احمد نادری

توسعه دهنده فول استک

author
author

احمد نادری

توسعه دهنده فول استک

کلاس‌های تک کار در لاراول

بعضی اوقات ما به جهت کدنویسی تمیز نیازداریمکنترلری تعریف کنیم که فقط یک اکشن را کنترل کنه…

برای اینکار ما  از متد __ 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)
    {
        ///   
    }

 

درباره من
  • سلام به وب سایت من خوش اومدید ! از سال 1388 که وارد دنیای برنامه نویسی شدم تجربیات خودم رو از پروژه های مختلف به دست آوردم و همیشه سعی کردم تا مهارت های فنی و رفتاری خودم رو ارتقا بدم تا بتونم برای خودم و سازمانی که در آن کار می کنم بهترین باشم . من عاشق یادگیری هستم و همیشه از چالش های جدید هیجان زده میشم چون اونارو کلید موفقیت و رشد خودم می دونم.
  • @ahmadnaderi01
arrow