Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2011, 16:20   #1
biohazardo
Пользователь
 
Аватар для biohazardo
 
Регистрация: 27.09.2010
Сообщений: 24
Смущение Вызов Smarty из класса

Еще не очень понял ООП. Есть класс View, он должен использовать Smarty для вывода шаблонов.

В начале (ни в одном классе) создаю объект $smarty = new Smarty;

Использовать его в классе View конечно же не могу (нет объекта $smarty). Как сделать так, чтобы из некоторых классов (допустим их много) я мог бы использовать данный шаблонизатор?
biohazardo вне форума Ответить с цитированием
Старый 28.11.2011, 16:24   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Как вариант передать указатель на шаблонизатор в конструктор. Или создавать экземпляр внутри класса.
psycho-coder вне форума Ответить с цитированием
Старый 28.11.2011, 16:48   #3
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Создаете свой Sigleton, который будет возвращать экземпляр Smarty
Код:
class MySmarty extends Smarty
{
    private static $instance = null;
    private function __clone() {}

    public static function getInstance ()
    {
        return (self::$instance === null) 
                  ? self::$instance = new parent 
                  : self::$instance;
    }

    private function __construct (){}
}
Берете свой Smarty где угодно
Код:
$smarty = MySmarty::getInstance ();
Cronos20 вне форума Ответить с цитированием
Старый 28.11.2011, 17:08   #4
biohazardo
Пользователь
 
Аватар для biohazardo
 
Регистрация: 27.09.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Cronos20 Посмотреть сообщение
Берете свой Smarty где угодно
Код:
$smarty = MySmarty::getInstance ();
Спасибо за помощь, так срабатывает!
biohazardo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вызов метода неинициализированной переменной класса coinkrsk Общие вопросы C/C++ 4 02.01.2011 17:26
Повторный вызов конструктора класса EUGY Общие вопросы C/C++ 13 28.09.2010 16:00
Вызов функции класса по адресу VintProg Общие вопросы Delphi 9 03.11.2009 05:17
mootools: вызов метода класса в цикле each toXx JavaScript, Ajax 1 18.03.2009 19:20
Автоматический вызов функции класса Flaton Общие вопросы C/C++ 4 19.10.2007 17:56