В PHP 5.4 планируются так называемые трейты (traits) - возможность создавать классы как комбинацию методов и полей других классов. По сути, это реализация множественного наследования в PHP.
Однако, проблема в том, что это будет только в PHP 5.4, а даже 5.3 не везде установлен. А система является потенциально очень удобной. И хочется использовать уже сейчас. Я решил сделать эмуляцию трейтов, работающую в 5.х. И это получилось! Я расскажу как.
(Система находится в разработке. Это только первая, предварительная версия).
Итак, давайте посмотрим, что мы хотим от трейтов и чего можем добиться в PHP 5. Для этого рассмотрим наиболее вероятный случай их использования. Случай следующий: мы берем класс-наследник (Н) и хотим в нем использовать методы из нескольких заранее готовых кусочков (К1, К2 и т. п.). Читать полностью »