@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 сделать, чтобы отдельный метод не писать (на самом деле не рекомендовал бы для одного свойства).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы