Всем доброго времени суток. Возможно ли как-то динамически связать один класс с другим? Базовых/родительских классов может быть несколько, подключаемых/дочерних классов/трейтов предполагается много. В родительском классе основная логика и базовые свойства, а также определяется имя подключаемого/дочернего трейта/класса. В подключаемом/дочернем трейте/классе дополнительные свойства и несколько методов, которые меняют поведение родительского класса. Так вот, есть ли какой-то способ в базовом классе подключить трейт или другой класс так, чтобы его свойства и методы были доступны из базового/родительского класса?
class Object {
__construct($name) {
use $name;
//это вызовет ошибку, нужен какой-то аналог
}
}
trait Name {
public $x = 1;
public function metod() {
return 2;
}
}
$object = new Object('Name');
echo $object->x;
echo $object->metod();
Либо может есть какой-то способ пойти в обратном порядке и динамически задавать имя родительского класса?
//Что-то вроде такого...
Name extends $object_name
Наверно я пытаюсь изобрести велосипед и есть более логичные способы.