| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
G_Z 24.10 01:09 / 24.10 01:11
Я плохие примеры привёл, удалил сообщение, а оно появилось.@main[] ^foo:identify[] ^bar:identify[] @CLASS interface @identify[] interface @CLASS mixin @identify[] ^BASE:identify[] of $self.CLASS_NAME @CLASS baz @CLASS bat @CLASS foo @BASE baz @auto[] ^reflection:mixin[interface;$.methods(true)] @CLASS bar @BASE bat @auto[] ^reflection:mixin[interface;$.methods(true)]Результат:
interface of foo interface of bar
Ну он писал, "аналог механизма Трейтов". Mixin делает ровно требуемое.Не знаком настолько глубоко с тонкостями трейтов в PHP, там такие финты с обращениями не поддерживаются?
Но конкретно BASE использовать в подмешиваемых методах нельзя, надо получать базовый класс через reflection, $base[^reflection:base[$self]].Да, но это заставляет подмешиваемые классы знать, что их будут подмешивать.