Class it_dbi:

/**
 * Factory: Create classes of all database tables. Call statically.
 * @param $p array(key => value) of configuration data
 */
static function createclasses($p = array())
{
    # Make sure singleton exists
    $dbi = $GLOBALS[static::$_global_key] ?: new static::$_global_key($p);

    $p += $dbi->_p;

    $dbid = "{$p['user']}@{$p['server']}:{$p['db']}";
    $state = static::_state_get($dbid);

    if (!$tables = $state['tables'])
    {
        $tables = $dbi->tables($p);
        $state = static::_state_get($dbid);    # State could have been modified by $db->tables() call
        $state['tables'] = $tables;
        static::_state_put($dbid, $state);
    }

    foreach ($tables as $table)
    {
        # Either create class in autoloader or manually just below
        if (!class_exists($p['classprefix'] . $table))
            static::createclass(array('table' => $table) + $p);
    }
}