это мой первый вопрос после нескольких лет поиска здесь хороших ответов. Я перекодирую одну из своих работ, пытаясь использовать более глубокий уровень подхода ООП, но я не знаю, правильно ли то, что я делаю.
То, что я пытаюсь сделать, - это простое создание продукта, но достаточно абстрактное, чтобы другим кодерам не нужно было знать, что использовать db или как проверять данные о продукте. Простой метод create($attr), например.
Это базовая схема кода.
abstract class Crud_model_abstract {
# private vars
# getter for private vars
# setter for private vars
# some basic methods
}
class Product_model_crud extends Crud_model_abstract {
# private vars
# getter for private vars
# setter for private vars
# CRUD methods (using phpactiverecord.com lib)
}
Затем некоторые классы для категории, бренда и т. д. с той же структурой, что и Product_model_crud.
Теперь мой вопрос заключается в следующем: должен ли я создать другую модель, которая составляет фактический продукт (добавить категорию в ее таблицу, затем бренд в ее таблицу.... затем создать продукт и сохранить его), а затем вызвать эту модель из контроллера, передающего параметры , или я должен вместо этого преобразовать эту большую модель (тот, который составляет продукт) в контроллер.
Я считаю, что должен создать большую модель, но на данный момент я ни в чем не уверен. Я прочитал ооооочень много материала о хороших практиках в ООП, и у меня есть сомнения на каждом этапе пути :D
Что я понимаю (поправьте меня, если я ошибаюсь), так это то, что в моем коде должно быть достаточно слоев, чтобы сделать его более чистым и конкретным. Но в некоторых случаях я не вижу, когда хватит.
Может быть, это глупый вопрос (конечно!!), но я больше не знаю, что, черт возьми, я делаю!! Спасибо!!