За последние 24 часа нас посетили 17262 программиста и 1640 роботов. Сейчас ищут 1763 программиста ...

Класс в классе

Тема в разделе "Прочее", создана пользователем enshtein, 19 дек 2006.

  1. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    Ситуация такая:

    Есть класс Viewer отвечающий за вывод страницы

    Код (Text):
    1. <?php
    2.  
    3. class Viewer
    4. {
    5.     function Viewer(&$db)
    6.     {
    7.         $this->template_dir = $URL_PATH . '/templates/' . $theme . '/' ; // путь к шаблону
    8.         include_once($ROOT_PATH . '/templates/' . $theme . '/theme.php'); // подключаем шаблон
    9.     }
    10.  
    11.  
    12.     /**
    13.     * Получение блоков
    14.     */
    15.     function get_blocks($place)
    16.     {
    17.         ......
    18.         ......
    19.         ......
    20.         global $ROOT_PATH;
    21.         include_once($ROOT_PATH . '/' . $func_file); // подлючаем файл модуля
    22.         $content = $show_func(); // вызываем функцию из подлюченного файла
    23.         $this->view_block($name, $content, '', $place);
    24.     }
    25.  
    26.     // обработка блоков
    27.     function view_block($header, $content, $current_page, $place) {
    28.  
    29.     }
    30.  
    31.     // вывод страницы
    32.     function display($output) {
    33.        
    34.     }
    35. }
    36. ?>
    в методе get_blocks() происходит динамическое подключение определенного файла (модуля) и вызов функции из этого файла, однако подключаемый файл может содержать в свою очередь свои includ'ы - в которых будут подключаться другие классы - в итоге получается что класс попадает в класс - а это не есть хорошо!
    Как избежать этого???
    Первое что приходит на ум это избавиться от класса - и воткнуть все в функцию - однако это не выход в моей ситуации... как поступить???
     
  2. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Почему?