Прототипное наследование в PHP (например, в JavaScript)

Можно ли использовать какое-то прототипное наследование в PHP, как это реализовано в JavaScript ?

Этот вопрос пришел мне на ум только из любопытства, а не в том, что я должен реализовывать такую ​​вещь и идти против классического наследования. Это просто интересная область для изучения.

Существуют ли функции предварительной сборки для объединения классической модели наследования в PHP с каким-то прототипным наследованием с комбинацией анонимных функций?

Допустим, у меня есть простой класс для UserModel

class UserModel implements PrototypalInheritance { // setters, getters, logic.. static public function Prototype () {} } $user = new UserModel(); UserModel::prototype()->getNameSlug = function () { return slugify($this->getUserName()); } echo $user->getNameSlug(); 

Вы можете использовать шаблон прототипа Creation, чтобы достичь чего-то подобного, но реальное прототипическое наследование, подобное найденному в JavaScript, невозможно afaik.

Если вы хотите иметь что-то вроде mixins / traits, вы можете использовать Decorators .

Однако есть RFC о том, есть ли у него черты в PHP6 .

Что вы можете сделать, это шаблон Prototype, который отслеживает жизненный цикл его клонированных объектов через SplObjectStorage. Всякий раз, когда прототип изменяется, Строитель будет проходить через карту и соответствующим образом корректировать экземпляры. Тем не менее, исправление обезьян должно быть выполнено через runkit . Не звучит слишком реально imho 🙂