Obtenir le nom d'un enfant de la classe dans la classe parent (contexte statique)

Je suis en train de construire un ORM bibliothèque de la réutilisation et de la simplicité à l'esprit, tout va bien sauf que je me suis coincé par un stupide héritage limitation. Veuillez examiner le code ci-dessous:

class BaseModel {
    /*
     * Return an instance of a Model from the database.
     */
    static public function get (/* varargs */) {
        //1. Notice we want an instance of User
        $class = get_class(parent); //value: bool(false)
        $class = get_class(self);   //value: bool(false)
        $class = get_class();       //value: string(9) "BaseModel"
        $class =  __CLASS__;        //value: string(9) "BaseModel"

        //2. Query the database with id
        $row = get_row_from_db_as_array(func_get_args());

        //3. Return the filled instance
        $obj = new $class();
        $obj->data = $row;
        return $obj;
    }
}

class User extends BaseModel {
    protected $table = 'users';
    protected $fields = array('id', 'name');
    protected $primary_keys = array('id');
}
class Section extends BaseModel {
    //[...]
}

$my_user = User::get(3);
$my_user->name = 'Jean';

$other_user = User::get(24);
$other_user->name = 'Paul';

$my_user->save();
$other_user->save();

$my_section = Section::get('apropos');
$my_section->delete();

Évidemment, ce n'est pas le comportement que j'attendais (même si le comportement est également logique).. Donc ma question est de savoir si les gars, vous connaissez un moyen de se le procurer, dans la classe parent, le nom de la classe enfant.

InformationsquelleAutor saalaa | 2008-11-12