В продолжение старого спора о ненужности get_called_class() для статических методов.
Вот уткнулся в практическую задачу.
Есть понятие очереди запросов на изменение объектов. Есть базовый класс фреймворка bors_object_change_request. Есть его наследник в проекте - aviaport_object_change_request extends bors_object_change_request. Фактически наследник - это просто настроенный базовый класс, в котором прописано, какой БД и какой таблицей он должен пользоваться (в системе может быть более одного проекта, данные разных проектов должны взаимодействовать, но не конфликтовать).
Есть статический метод быстрого добавления запроса на изменение свойства объекта:
static function add($target, $property, $value, $user);
Приходится лепить костыль. В базовом классе определять:
static function add($target, $property, $value, $user, $self_class_name);
static function add($target, $property, $value, $user) { return parent::add($target, $property, $value, $user, 'aviaport_object_change_request'); }
Есть мысли, как без него обойтись, кроме как ждать повсеместного перехода на PHP 5.3?