Laravel Controller

이하루·2024년 7월 22일

MVC패턴 중 C에 해당하며 HTTP요청 처리 등 실제 데이터 흐름을 제어하는 Controller에 대해서 알아보고자 한다.

✅ Controller?

Controller는 전반적인 시스템을 관리하는 주체로, 클라이언트로부터 HTTP요청을 받아들이고, Model을 호출하여 데이터를 가져오거나 저장하며, 취득한 데이터나 애플리케이션의 흐름을 제어하기 위한 비즈니스 로직을 실행하며, 이로 인해 가공된 데이터나 HTMl 등을 View로 반환하는 역할을 수행한다.

💻 Laravel의 Cotroller

Laravel에서의 Controller는 아래의 Artisan 명령어를 통해서 Controller를 추가할 수 있으며, App\Http\Controllers\ 하위에서 관리된다.

php artisan make:controller {Controller명}

⭐주요 사용방법

1. 미들웨어 지정

Controller마다 미들웨어를 개별적으로 지정할 수 있다.

  • 라우트 지정
Route::get('profile', [UserController::class, 'show'])->middleware('auth');
  • 생성자 지정
class UserController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
        $this->middleware('log')->only('index');
        $this->middleware('subscribed')->except('store');
    }
}

2. 의존성 주입

생성자, 메소드의 매개변수로 의존성을 주입할 수 있다.

<?php

namespace App\Http\Controllers;

use App\Repositories\UserRepository;
use Illuminate\Http\Request;

class UserController extends Controller
{
    protected $users;

	// 생성자 의존성 주입
    public function __construct(UserRepository $users)
    {
        $this->users = $users;
    }
    
    // 메소드 의존성 주입
    public function store(Request $request)
    {
        $this->users = $request->name;

        //
    }
}
profile
어제보다 더 나은 하루

0개의 댓글