@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
   }
}
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
BOOMER_74
@BOOMER_74
Full-Stack разработчик
А что Вас смущает? Вполне логичный ход. Можно еще через __set сделать, чтобы отдельный метод не писать (на самом деле не рекомендовал бы для одного свойства).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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