Сеттер в конструкторе? Адекватная ли конструкция:
Показан кусок кода из модели новостей, в конструктор приходит базовая модель. Базовая модель, так же как и модель новостей, имплементирует ModelInterface.public function __construct(ModelInterface $model) {
$this->setTable('news');
$this->model = $model;
}
private function setTable($table) {
$this->table = BaseModel::PREFIX . $table;
}
Устанавливаю рабочую таблицу в конструкторе, и дальше использую ее в запросах

21 Авг 2019 в 07:03
205 +1
0
Ответы
1

Да, данная конструкция в целом адекватна. Однако, следует учитывать, что использование сеттера в конструкторе может быть не самым лучшим подходом, поскольку сеттеры обычно предназначены для внешнего изменения свойств объекта. В данном случае, если установка таблицы является обязательной частью инициализации объекта, то, возможно, имеет смысл использовать сразу в конструкторе нетривиальную логику установки значения таблицы.

Также важно убедиться, что метод setTable() не используется за пределами данного класса, чтобы избежать нежелательных побочных эффектов. Кроме того, рекомендуется документировать эту логику в комментариях, чтобы другие разработчики могли понять, зачем таблица устанавливается именно таким образом.

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир