Как расширить функционал базового класса без наследования? Аналог prototype из JS.

alekciy

Новичок
Как расширить функционал базового класса без наследования? Аналог prototype из JS.

Собственно вопрос. Как в PHP_V5 можно расширить функционал базового класса без создания классов потомков? Интерфейсы это вроде через наследование...

В общем вопрос сводится к вопросу, если ли в PHP аналог функции prototype из JavaScript который бы позволил расширить функционал некоего класса без наследования? Т.е. что бы можно было написать некий метод, указать, что он является расширением к некоему классу и потом его включать в те скрипты, в которых этот метод нужен, а в коде создавать экземпляр базового класса и использовать для него этот новый метод.
 

diamond_krnl

pure-php
можно канешно извратится:
__сall, create_function, className::myRegisterFunction
+ немного бубна :)

но лучше не надо :) костыли имеют свойство ломацо :)
 

alekciy

Новичок
Мда... жаль, что это нет, полезная ведь штука. Может в 6-ой версии реализуют?
 

dimagolov

Новичок
alekciy
у JS модель ООП существенно иная, чем в большинстве других языков, там классов собственно и нету, а есть объекты и прототипы. Поэтому ожидать появление подобных механизсов в PHP6 по-моему бесполезно.

И потом, не пытайтесь писать на одном языке так, как привыкли на другом. Каждый подход к модели ООП имеет свои сильные и слабые стороны, и надо писать используя по максимуму сильные, а не думать как реализовать то, что я привык делать где-то в другом месте.
 

NOX

Новичок
Еслі я правільно понял:

http://www.php.net/manual/ru/ref.classkit.php
 

alekciy

Новичок
Автор оригинала: dimagolov
alekciy
у JS модель ООП существенно иная, чем в большинстве других языков, там классов собственно и нету, а есть объекты и прототипы. Поэтому ожидать появление подобных механизсов в PHP6 по-моему бесполезно.

И потом, не пытайтесь писать на одном языке так, как привыкли на другом.
А я и не пытаюсь. Но развитие любого языка предполагает кроме появления новых фич в языке еще и заимствование лучших сторон других языков. И в этом отношении это было бы хорошее, имхо, заимствование.
 
Сверху