ФорумПрограммированиеPHP для идиотов → Подключения класса из названия этого класса

Подключения класса из названия этого класса

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 9 апреля 2009 г. 4:51

    Муть какую то написал в заголовке =(

    В общем идея такая
    Из БД получаю список классов которые  необходимо подключить.

    типа так
    foreach($class_name as $var)
    {
      $class["news"]= new $var['name'];
    }

    Как реализовать?
  • phpdude

    Сообщения: 26632 Репутация: N Группа: в ухо

    Spritz 9 апреля 2009 г. 5:29, спустя 38 минут 52 секунды

    если я не сильно отупел, то так и реализуется …
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 9 апреля 2009 г. 7:45, спустя 2 часа 15 минут 39 секунд

    Professor
    Может так:
    foreach($class_name as $var)
    {
    $class[$var['name']]= new $var['name'];
    }
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 9 апреля 2009 г. 7:48, спустя 2 минуты 50 секунд


    если я не сильно отупел, то так и реализуется …

    а как в конструктор значения передавать?

    foreach($class_name as $var)
    {
    $class["news"]= new $var['name']("Это идет в конструктор");
    }

    Так?
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 9 апреля 2009 г. 7:56, спустя 8 минут 7 секунд

    тебе, по-моему, надо определить переменную типа

    $class = $var['name'];
    .. new $class();
    все умрут, а я изумруд
  • phpdude

    Сообщения: 26632 Репутация: N Группа: в ухо

    Spritz 9 апреля 2009 г. 8:14, спустя 17 минут 29 секунд

    Professor, можно и так если я не ошибаюсь. а вообшще просто поэкспериментируй и отпишись как получилось это делать :)
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 9 апреля 2009 г. 8:17, спустя 3 минуты 52 секунды

    да все правильно он делает но лучше через рефлексию


    		
    $reflection = new ReflectionClass($name);
    $myClass = $reflection->newInstanceArgs($args);


    читаем тут  http://mabp.kiev.ua/2007/07/25/pattern_factory/
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 9 апреля 2009 г. 10:06, спустя 1 час 49 минут 4 секунды

    В общем работает и так
    $class["news"]= new $var['name']("Это идет в конструктор");

    и так
    $class = $var['name'];
    .. new $class();


    И так сейчас читать буду =)

    $reflection = new ReflectionClass($name);
    $myClass = $reflection->newInstanceArgs($args);


    Спасибо всем.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!