Задать вопрос
fomvasss
@fomvasss
PHP developer

Что за паттерн и можно ли его использовать в реальных проектах?

Так и не нашел ответа на мой предыдущий вопрос здесь. . Поэтому хочу для начала узнать как классифицировать сервисный слой между контроллерами и моделями, мной реализованный ниже в примере, и реально ли использовать такую концепцию в дальнейших проектах?

Контроллер:
class PostController extends Controller
{
    protected $post;

    public function __construct(PostService $post)
    {
        $this->post = $post;
    }

    public function index()
    {

        $posts = $this->post->getAll();
        return view('admin.posts.posts', compact('posts'));
    }
}


Модель:
class Post extends Model
{
	protected $table = 'posts';

	protected $fillable = ['slug','title', 'img', 'description', 'content', 'category_id'];
	
	public function category()
	{
		return $this->belongsTo('App\Models\Category');
	}
}


Сервис или Репозиторий:?
class PostService
{
	protected $post;

	public function __construct(Post $post)
	{
		$this->post = $post;
	}

	public function getAll()
	{
		return $this->post->all();
	}
}
  • Вопрос задан
  • 490 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@Fractalzombie
Software Engineer
Вам нормально ответили на вопрос и в тот раз. Если приложение сложное то есть смысл прятать запросы в репозитории а логику в сервисах что бы разгрузить контроллеры и уйти от дублирования кода.

Да и если оно очень сложное, может лучше Doctrine ORM? Там как раз таки поощряется использование Repository, Services.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы