Передача имени класса через переменную.

  • Автор темы Автор темы Slam
  • Дата начала Дата начала

Slam

Новичок
Передача имени класса через переменную.

Возможно ли передать имя класса с помощью переменной?
Например, у меня есть класс, который может наследоваться от различных классов в зависимости от состояния переменной.

PHP:
// Класс, включающий поддержку работы с БД
require_once($db_driver . '.class.php');

class Framework_Abstract extends $db_driver
{
    
}

Как правильно это сделать?

Заранее благодарен!
 
возможно. некоторые так реализуют множественное наследование.
только зачем наследовать фреймворк от драйвера БД? его лучше как член хранить.
 
Есть различные драйвера для доступа к БД.
Это файлы:

Framework_DB_MySQLi.class.php
Framework_DB_Postgree.class.php
и собственно
Framework_DB_Abstract.class.php,
который наследует тот или иной файл (Framework_DB_MySQLi.class.php или Framework_DB_Postgree.class.php).

Все неудобство в том, что в скрипте, который работает с БД, не нужно знать с какой БД он работает.
Для этого он создает екземпляр каласса Framework_DB_Abstract (который уже наследует тот или иной драйвер).
 
...... промолчу.

-~{}~ 10.01.07 00:28:

Потому что Gorynych все сказал :)
 
Решил проблему следующим образом:
Класс Framework_DB_Abstract:
PHP:
// Класс, включающий поддержку работы с конкретной БД
require_once(_CFG_DB_DRIVER . '.class.php');

final class Framework_DB_Abstract 
{
    
    public static function get_driver()
    {
        $class_name = _CFG_DB_DRIVER;
        return new $class_name;
    }
}

А скрипт, который использует класс -
PHP:
include_once('../classes/Framework_DB_Abstract.class.php');

$db = Framework_DB_Abstract::get_driver();
if ($db->connect()) //.....
 
А не проще сразу делать :

PHP:
$db = new $class_name();
if ($db->connect()) //.....
?
 
Сверху