سلام و عرض ادب
توی کنترلرمون به جای اینکه توی متدهای create و update دوتا ابجکت از سرویس VideoService بسازیم، اگر توی کانستراکتور کنترلر، کلاس سرویسمون رو تزریق کنیم و ازش توی متدهامون استفاده کنیم، کار درستیه؟
به این صورت:
namespace App\\Http\\Controllers;
use App\\Models\\Video;
use App\\Http\\Requests\\StoreVideoRequest;
use App\\Http\\Requests\\UpdateVideoRequest;
use App\\Services\\VideoService;
class VideoController extends Controller
{
public function __construct(private VideoService $videoService)
{
}
public function store(StoreVideoRequest $request)
{
$this->videoService->create($request->user(),$request->all());
return redirect()->route('index')->with('success', __('messages.success'));
}
public function update(UpdateVideoRequest $request, Video $video)
{
$this->videoService->update($video,$request->all());
return redirect()->route('videos.show', $video->slug);
}
}
با این کار کلاس کنترلرمون به کلاس سرویسمون به اصطلاح couple نمیشه؟
best practice تو اینجور مواقع چیه؟