@dasauser
Пишу на PHP

Приведите пример реализации MVC + Service Layer + Repository?

Может кто-то привести толковый пример реализации MVC + Service Layer + Repository?
А то я не совсем понимаю, что тогда должна делать модель в таком случае, и с чем работает контроллер.
  • Вопрос задан
  • 354 просмотра
Пригласить эксперта
Ответы на вопрос 1
@dmitriylanets
Модель раскладывается на три составляющие: класс сущности (Entity), класс работы с бд(Repository) и класс для бизнес логики (Service)

а пример простой
<?php
class Controller
{

	private $userService;

	function __construct(UserService $userService)
	{
	
		$this->userService = $userService;
	}
	
	public function show(int $id){
	
		try{
			$user = $this->userService->getById($id);
		}
		catch(UserNotFound $ex){
			return new Response(null,404);
		}
	
		return new JsonResponse($user->toArray(),200);
	}
	
}

class UserService
{


	private $userRepository;

	function __construct(UserRepository $userRepository)
	{
	
		$this->userRepository = $userRepository;
	}

	public function getById(int $id): User
	{
	
		if(!$user = $this->userRepository->findById($id))
		{
			throw new UserNotFound($id);
		}
		
		return $user;
	}
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы