Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Хранение структуры сайта и шаблонов


Автор: Zuzuka 11.5.2010, 23:47
Здравствуйте, имеется:
-Таблица в БД вида: id : pid : name : url : template

В поле template хранится ссылка на файл шаблона (его путь в реальной фс).
Вопрос, насколько целесообразно хранить не ссылку на файл а например id в другой таблице вида id template, где в поле template будет записан сам текст шаблона.

В системе все операции осуществляю через хелпперы(виджеты), контроллером по сути обхожусь одним, который обращается к модулям. Вывод хелпперов подставляю в шаблон через простенький шаблонизатор, затем готовая страница кешируется, грубо говоря кешируется весь запрос к какому-то url.

Текст шаблона небольшой обычно:
...
<html>
...
<headerWidget:title=Test>
...
<articleWidget:table=test,id=1>
...
</html>

Сделал так, чтобы в админке сделать простое редактирование - получаем шаблон, находим все хелпперы и строим минисписок с ними при щелчке открываем форму\окошко их редактирования(т.к. параметры вызова можно задавать, то на выходе из всех полей просто получаем строку (<widget:param1=test,param2=test...>), которая вставляется в шаблон. Т.к. структура хранится тоже в бд, то ей просто манипулировать.

Собственно в итоге:
1.Хранить ссылку на файл шаблона или можно хранить текст шаблона в бд, некешируемых страниц немного(админка, форма обратной связи...)?
2.Использование хелпперов в таком контексте разумно?

Спасибо.

Автор: NewDima 12.5.2010, 03:35
Не видно ни одного реального довода для использования в этой задаче базы данных. Предчувствую, что потом начнутся вопросы, типа "а что здесь можно оптимизировать?". Это раз.
А два, вы понимаете, для чего вообще используются хелперы?
Добавите себе работы с приведением урлов к одному виду, оно вам надо?
Не проще ли сразу договориться о том, как и где хранятся шаблоны?

Автор: Zuzuka 13.5.2010, 19:08
А как вообще делают в cms админку с возможностью редактирования страницы начиная от метатэгов и заголовка и до контента? Хранят все редактируемые единицы отдельно в бд и потом склеивают просто? (обновляя кэш при изменении)...
Допустим есть блок выводяший верхушку и меню, как лучше хранить его параметры, если они могут меняться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)