Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
Здравствуйте, уважаемые программисты!
Я начал писать CMS, использовал курсы Костикса, но потом мне понадобился шаблонизатор. Смарти и Твиг не подходят, т. к. много весят. Решил посотреть на примере phpBB, но ничего не понял.
Суть вопроса:
Хочется сделать простым создание шаблонов на сайт, с использованием лексем типа {CONTENT}, но чтобы они заменялись на заданные значения в ядре.
Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
забавно сам сейчас ломаю голову над шаблонизацией %)))
пока больше всего склоняюсь к реализации всей визуализации через класс View, а основной шаблон html выводить через класс Html, который унаследывает класс View.
объекты классов выводить просто обращаясь методом render(), хотя можно и неявно в виде echo $SomeViewObject; тогда будет вызван метод $SomeViewObject->_toString(); при такой схеме сами объекты знают как выводить данные, которые в них есть...
вроде логично, сегодня постараюсь реализовать эту схему
ЗЫ: кстати Crate, если вы применяете паттерн проектирования MVC, то предлагаю объедениться в создании движка ;) тема поднята в соседнем топике № 1475
caballero
Отправлено: 19 Января, 2012 - 10:20:58
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
digi
А чего тут ломать - за тебя ее уже поломали разрабы PHP создавши язык который уже является шаблонизатором по своей природе. Переменные в фигурных скобках ничем не лучше обычных PHP переменных в треугольных. Зато не надо ничего парсить - обычный инклуд и все дела.
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Дык он и не вызывается даже. Что вы тут пытались сделать - для меня вообще загадка.
----- PostgreSQL DBA
digi
Отправлено: 19 Января, 2012 - 10:56:43
Посетитель
Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
я тоже против шаблонных движков в плане сочинения своего синтаксиса, т.е. например у меня модуль новостей возвращает объект класса View (например $News = new View();), у которого есть свойство $News->items, также у этого объекта есть информация с именем файла шаблончика, которым надо вывести данные из $News->items.
далее когда выполняется вывод, выполняется метод $News->render(), который сам уже находит файл шаблончика и инклюдит его, наприер шаблончик может выглядеть так:
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Crate пишет:
Одно дело из БД вытаскивать значения, а другое из языковых файлов тянуть.
И в чём же разница? А никакой разницы нет, откуда тянуть данные.
Crate пишет:
Все же ключ массива (если не переменная) должен быть заключен в кавычки. Иначе не сработает.
Сработает. Но не всегда ожидаемо и с E_NOTICE.
Да, +1 к лагерю сторонников использования нативных конструкций PHP, вместо метаязыка
Но, всё-таки, не холиварим по этому поводу. Я понимаю, тема хорошая, споры регулярно возвращаются.
----- PostgreSQL DBA
Crate
Отправлено: 19 Января, 2012 - 11:44:24
Посетитель
Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
DeepVarvar пишет:
шаблонзатор не нужен
Суть вопроса не в том, как заставить меня отказаться от шаблонизатора, а как его создать. (Добавление)
Еще вопрос: можно ли распарсить файл через прег_матч_олл? Или как записать все строки файла в одну переменную?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.