Задать вопрос
@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
   }
}
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
BOOMER_74
@BOOMER_74
Full-Stack разработчик
А что Вас смущает? Вполне логичный ход. Можно еще через __set сделать, чтобы отдельный метод не писать (на самом деле не рекомендовал бы для одного свойства).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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