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
نتیجه
کنترلرها در لاراول برای مدیریت منطق برنامه، جداسازی منطق از نماها و گروه بندی عملکردهای مرتبط بسیار مفید هستند. آنها کد را ساختارمندتر می کنند، نگهداری آن را آسان تر می کنند و استفاده از ویژگی های پیشرفته مانند میان افزار و تزریق وابستگی را امکان پذیر می کنند.