برنامه نویسی

CONTROLLER – انجمن DEV

Summarize this content to 400 words in Persian Lang
کنترلرها در لاراول برای سازماندهی منطق برنامه و رسیدگی به درخواست های HTTP استفاده می شوند. آنها منطق برنامه را از نماها و داده ها جدا می کنند و کد را ساختارمندتر و نگهداری آسان تر می کنند. در اینجا برخی از کاربردهای اصلی کنترلرها در لاراول آورده شده است:

آ. مدیریت منطق برنامه:

منطق برنامه را سازماندهی می کند و درخواست های HTTP ورودی را مدیریت می کند.
قابلیت های مرتبط را در یک کلاس گروه بندی می کند.

class UserController extends Controller
{
public function show($id)
{
$user = User::find($id);
return view(‘user.profile’, [‘user’ => $user]);
}
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ب. جداسازی منطق از دیدگاه ها:

منطق برنامه را از نماها جدا کنید تا کد را تمیز و مرتب نگه دارید.

Route::get(‘/user/{id}’, [UserController::class, ‘show’]);

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سی. کنترلرهای RESTful:

لاراول یک راه آسان برای پیاده سازی کنترلرهای RESTful با روش های داخلی مانند index، create، store، show، edit، update، و destroy.

class PostController extends Controller
{
public function index()
{
$posts = Post::all();
return view(‘posts.index’, [‘posts’ => $posts]);
}

public function create()
{
return view(‘posts.create’);
}

public function store(Request $request)
{
$post = new Post;
$post->title = $request->title;
$post->content = $request->content;
$post->save();
return redirect()->route(‘posts.index’);
}
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

D. گروه بندی مسیرها:

گروه بندی مسیرها بر اساس کنترل کننده را آسان تر می کند تا تنظیم و نگهداری مسیرها آسان تر شود.

Route::controller(UserController::class)->group(function () {
Route::get(‘/users’, ‘index’);
Route::get(‘/users/{id}’, ‘show’);
Route::post(‘/users’, ‘store’);
Route::put(‘/users/{id}’, ‘update’);
Route::delete(‘/users/{id}’, ‘destroy’);
});

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

E. میان افزار در کنترلر:

میان‌افزار را می‌توان بر روی کنترل‌کننده یا روش‌های خاصی در کنترل‌کننده برای منطق اضافی مانند احراز هویت و مجوز پیاده‌سازی کرد.

class AdminController extends Controller
{
public function __construct()
{
$this->middleware(‘auth’);
}

public function dashboard()
{
return view(‘admin.dashboard’);
}
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اف. تزریق وابستگی:

از تزریق وابستگی برای دریافت نمونه هایی از کلاس های مورد نیاز به طور مستقیم در روش های کنترلر استفاده کنید.

use App\Services\UserService;

class UserController extends Controller
{
protected $userService;

public function __construct(UserService $userService)
{
$this->userService = $userService;
}

public function index()
{
$users = $this->userService->getAllUsers();
return view(‘users.index’, [‘users’ => $users]);
}
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

یک کنترلر ایجاد کنید

برای ایجاد یک کنترلر جدید، از دستور Artisan استفاده کنید:

php artisan make:controller UserController

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نتیجه

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

کنترلرها در لاراول برای سازماندهی منطق برنامه و رسیدگی به درخواست های HTTP استفاده می شوند. آنها منطق برنامه را از نماها و داده ها جدا می کنند و کد را ساختارمندتر و نگهداری آسان تر می کنند. در اینجا برخی از کاربردهای اصلی کنترلرها در لاراول آورده شده است:

آ. مدیریت منطق برنامه:

  • منطق برنامه را سازماندهی می کند و درخواست های HTTP ورودی را مدیریت می کند.
  • قابلیت های مرتبط را در یک کلاس گروه بندی می کند.
   class UserController extends Controller
   {
       public function show($id)
       {
           $user = User::find($id);
           return view('user.profile', ['user' => $user]);
       }
   }
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ب. جداسازی منطق از دیدگاه ها:

  • منطق برنامه را از نماها جدا کنید تا کد را تمیز و مرتب نگه دارید.
   Route::get('/user/{id}', [UserController::class, 'show']);
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سی. کنترلرهای RESTful:

  • لاراول یک راه آسان برای پیاده سازی کنترلرهای RESTful با روش های داخلی مانند index، create، store، show، edit، update، و destroy.
   class PostController extends Controller
   {
       public function index()
       {
           $posts = Post::all();
           return view('posts.index', ['posts' => $posts]);
       }

       public function create()
       {
           return view('posts.create');
       }

       public function store(Request $request)
       {
           $post = new Post;
           $post->title = $request->title;
           $post->content = $request->content;
           $post->save();
           return redirect()->route('posts.index');
       }
   }
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

D. گروه بندی مسیرها:

  • گروه بندی مسیرها بر اساس کنترل کننده را آسان تر می کند تا تنظیم و نگهداری مسیرها آسان تر شود.
   Route::controller(UserController::class)->group(function () {
       Route::get('/users', 'index');
       Route::get('/users/{id}', 'show');
       Route::post('/users', 'store');
       Route::put('/users/{id}', 'update');
       Route::delete('/users/{id}', 'destroy');
   });
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

E. میان افزار در کنترلر:

  • میان‌افزار را می‌توان بر روی کنترل‌کننده یا روش‌های خاصی در کنترل‌کننده برای منطق اضافی مانند احراز هویت و مجوز پیاده‌سازی کرد.
   class AdminController extends Controller
   {
       public function __construct()
       {
           $this->middleware('auth');
       }

       public function dashboard()
       {
           return view('admin.dashboard');
       }
   }
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اف. تزریق وابستگی:

  • از تزریق وابستگی برای دریافت نمونه هایی از کلاس های مورد نیاز به طور مستقیم در روش های کنترلر استفاده کنید.
   use App\Services\UserService;

   class UserController extends Controller
   {
       protected $userService;

       public function __construct(UserService $userService)
       {
           $this->userService = $userService;
       }

       public function index()
       {
           $users = $this->userService->getAllUsers();
           return view('users.index', ['users' => $users]);
       }
   }
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

یک کنترلر ایجاد کنید

برای ایجاد یک کنترلر جدید، از دستور Artisan استفاده کنید:

php artisan make:controller UserController
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نتیجه

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

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا