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();
	}
}
  • Вопрос задан
  • 489 просмотров
Решения вопроса 1
@Fractalzombie
Software Engineer
Вам нормально ответили на вопрос и в тот раз. Если приложение сложное то есть смысл прятать запросы в репозитории а логику в сервисах что бы разгрузить контроллеры и уйти от дублирования кода.

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

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект