Задать вопрос
@galithr

Корректно ли преобразовывать значения в геттере?

Грубо говоря есть два класса:
первый
class A {
    public $prop1;
    public $prop2;
}


Второй:
class B {
    public $object; // Объект класса A

    public function run(){
          return $this->object->prop1 + $this->object->prop2;
    }
}


нужно сделать что бы свойство object класса B могло задаваться либо как ОБЪЕКТ либо как МАССИВ с конфигурацией объект, т.е., так:

$b = new B();
$b->object = new A(); // задаем в виде объекта
$b->object = [ // задаем в виде массива
    'prop1' => 1,
    'prop2' => 2
]


собственно вопрос - насколько корректно будет сделать сеттер в классе B для свойства object и в нем проверять - если пришел объект присваиваем его свойству, если пришел массив с конфигурацией - создаем объект самостоятельно. Т.е. так:
class B {
   private $_object;

   public function setObject($value) {
       // здесь проверяем пришел объект и массив. Если пришел объект 
       // передаем его в переменную $_object, если пришел массив - 
       // самостоятельно создаем объект и передаем в свойство $_object
   }
}
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
BOOMER_74
@BOOMER_74
Full-Stack разработчик
А что Вас смущает? Вполне логичный ход. Можно еще через __set сделать, чтобы отдельный метод не писать (на самом деле не рекомендовал бы для одного свойства).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽