Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Шаблонизатор на XML+XSL, Рекомендации и обмен опытом 
:(
    Опции темы
mishaSL
Дата 4.12.2007, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 54



Сначало немного объясню суть.
В данный момент переписываю практически с нуля свою CMS систему. До этого использовал свой шаблонизатор - шаблоны были в HTML и проблем собственно не было. 
Почему задумался об XSLT... Хочется достичь того, чтобы практически весь вывод информации (включая всякие мелочи такие, как прописание дополнительных стилей в зависимости от получаемой информации и т.д.) можно было настроить в шаблонах. Наворачивать HTML-шаблонизатор всякими дополнительными функциями приведет к снижению скорости работы, и я вообще не вижу смысла изобретать псевдоязык, если есть такой сильный и мощный инструмент как XSLT.

Прикинув этапы прохождения информации:
1. Получение информации из БД MySQL. (Вся информация хранится именно там).
2. Составление XML файла с этой информацией.
3. Передача XML файла (или DOM-объекта) в шаблонизатор и указание какой XSL шаблон использовать. Соответственно обработка и вывод информации.

Но смущает одно:
Составление XML файла из информации полученной из БД MySQL - получается как бы дополнительный этап и есть подозрения, что скорость работы всей этой системы после такой организации шаблонов резко снизится.

Так вот хотел услышать мнения тех, кто уже писал что-то подобное. Или начинал писать, но остановился по каким-либо причинам. Как вы думаете, есть ли еще какие-либо минусы в данной структуре организации шаблонов?


P.S. Модераторы - оставьте пожалуйста тему в этом разделе форума. Заранее спасибо.





--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
SamDark
Дата 4.12.2007, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 0
Всего: 38



Цитата

Наворачивать HTML-шаблонизатор всякими дополнительными функциями приведет к снижению скорости работы

Ага... а использование XSLT ускорит? ;)

Цитата

и я вообще не вижу смысла изобретать псевдоязык

Есть native template уже. Зачем изобретать?

Этапы верные. Подозрения про скорость тоже. Но упадёт она не при генерации XML, а при применении XSLT-преобразования.

Опыт с XSL есть. Получается очень гибко, довольно сложно и не сильно быстро.

Это сообщение отредактировал(а) SamDark - 4.12.2007, 21:32


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
N0dwis
Дата 5.12.2007, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 18.9.2007
Где: Луганск

Репутация: 1
Всего: 4



Как раз дописываю такую штуку. Насчет скорости честно говоря не заметил, но пока и страницы не особо сложные.
Минусов я пока особых не нашел, кроме того, что приходится разбираться в дополнение к php, xhtml, sql еще и с xml, xslt.
А так мне понравилось - отделение кода от дизайна почти стопроцентное. Почему почти - иногда надо вставить какую-то мелочь - типа заголовок, таблицу специального вида и т.п. Городить из-за этого очередной тег xml не хочется, вот и приходится все-таки вставлять чистый xhtml.


Это сообщение отредактировал(а) N0dwis - 5.12.2007, 01:25
PM MAIL   Вверх
teroni
Дата 5.12.2007, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 1
Всего: 22



Цитата(mishaSL @  4.12.2007,  20:31 Найти цитируемый пост)

Но смущает одно:
Составление XML файла из информации полученной из БД MySQL - получается как бы дополнительный этап и есть подозрения, что скорость работы всей этой системы после такой организации шаблонов резко снизится.
Определитесь, какая у вас конечная цель - максимальная скорость или удобство редактирования шаблонов? И одним из этого пожертуйте ради второго, ведь как не крути, а максимальная скорость всегда будет вообще без использования шаблонизатора.
PM MAIL   Вверх
mishaSL
Дата 5.12.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 54



Цитата(teroni @  5.12.2007,  02:25 Найти цитируемый пост)
Определитесь, какая у вас конечная цель - максимальная скорость или удобство редактирования шаблонов?

Один фактор не должен критически влиять на другой. Конечно же скорость может немного упасть, но не критически. Иначе смысла не будет во всей этой гибкости шаблонов.

Цитата(SamDark @  4.12.2007,  21:12 Найти цитируемый пост)
Ага... а использование XSLT ускорит? ;)

Ну согласись, есть разница: использовать стандартное расширение PHP написанное на C или использовать для обработки дополнительных условий в шаблоне сам PHP.

Цитата(SamDark @  4.12.2007,  21:12 Найти цитируемый пост)
Есть native template уже. Зачем изобретать?

Про изобретать - это я образно. Просто изучать язык шаблонов того же Smarty - это как синтаксис отдельного языка программирования, чем он лучше XSL сложно сказать.

Цитата(N0dwis @  5.12.2007,  01:25 Найти цитируемый пост)
вот и приходится все-таки вставлять чистый xhtml

Ну его можно прямо в XSL шаблон запихать и программный код не трогать...

Цитата(SamDark @  4.12.2007,  21:12 Найти цитируемый пост)
Но упадёт она не при генерации XML, а при применении XSLT-преобразования.

Есть сомнения, но по фактам что-то против сказать не могу - возможно ты прав. 

Буду пробовать, если интересно буду отписываться в этой теме...


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
SamDark
Дата 5.12.2007, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 0
Всего: 38



mishaSL
Цитата

Один фактор не должен критически влиять на другой.

Посмотрите в сторону шаблонов в CakePHP. Там используется native-синтаксис. т.е. парсинга дополнительного нет. При этом всё довольно гибко.

Цитата

Ну согласись, есть разница: использовать стандартное расширение PHP написанное на C или использовать для обработки дополнительных условий в шаблоне сам PHP.

Знаю. Поэтому и порекомендовал native-шаблоны.

Цитата

Про изобретать - это я образно. Просто изучать язык шаблонов того же Smarty - это как синтаксис отдельного языка программирования, чем он лучше XSL сложно сказать.

И ещё один плюс к native-шаблонам.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
N0dwis
Дата 5.12.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 18.9.2007
Где: Луганск

Репутация: 1
Всего: 4



Цитата(mishaSL @  5.12.2007,  13:54 Найти цитируемый пост)
Ну его можно прямо в XSL шаблон запихать и программный код не трогать...

Иногда не получается, да и удобнее просто вставить xhtml.

Цитата(SamDark @  5.12.2007,  14:09 Найти цитируемый пост)
Знаю. Поэтому и порекомендовал native-шаблоны.

Что есть native-шаблоны в общем случае? CakePHP я ж понимаю платный, ну а сама технология что собой представляет? Где почитать?
PM MAIL   Вверх
SamDark
Дата 5.12.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 0
Всего: 38



N0dwis
CakePHP бесплатный smile

native-шаблоны заключены в самом php т.к. php/fi изначально писался как шаблонизатор для си cgi.

Код

<ul>
<?foreach($items as $item):?>
  <li><?=$item?></li>
<?enforeach?>
</ul>



--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
mishaSL
Дата 5.12.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 54



Цитата(SamDark @  5.12.2007,  14:09 Найти цитируемый пост)
Поэтому и порекомендовал native-шаблоны.

Цитата(SamDark @  5.12.2007,  14:09 Найти цитируемый пост)
И ещё один плюс к native-шаблонам. 


Да все в этом замечательно. Но есть одно НО, хочется достичь четкого разделения данных, шаблонов и чтобы данные никак не были связаны с особенностями движка. Т.е. к примеру человек который абсолютно не знает что это за движок и его особенностей,  видит перед собой исходный XML файл, и соответственно одними только знаниями XSL настраивать весь вывод. Я думаю это должно быть очень удобно. 
Просто при использовнии native template в любом случае технология построения шаблонов начинает зависеть от движка.

Ладно, как-только допишу эту систему выложу здесь сравнительные тесты. Чтобы всем было понятно, насколько это все пригодно для использования, и на сколько уменьшается производительность по сравнению с теми же native-шаблонами. В любом случае считаю надо попробовать.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
SamDark
Дата 5.12.2007, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 0
Всего: 38



mishaSL
Это только при плохом использовании native template.

Попробовать можно. Но, в принципе, уже всё есть готовое ;)


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
mishaSL
Дата 5.12.2007, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 54



Цитата(SamDark @  5.12.2007,  15:45 Найти цитируемый пост)
Попробовать можно. Но, в принципе, уже всё есть готовое ;) 

Если есть ссылочка, поделись пожалуйста.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
SamDark
Дата 5.12.2007, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 0
Всего: 38





--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
mishaSL
Дата 5.12.2007, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 54



SamDark, за ссылки большое спасибо, но
Цитата(SamDark @  5.12.2007,  17:27 Найти цитируемый пост)
http://phptal.motion-twin.com/

насколько я понял это еще один язык шаблонов... или я что-то не понял....

Цитата(SamDark @  5.12.2007,  17:27 Найти цитируемый пост)
http://www.xml.lt/Resources/Framework

А это насколько я понимаю framework... может там и есть это, но пока что не разбирался подробно...



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
SamDark
Дата 5.12.2007, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 0
Всего: 38



mishaSL
Цитата

насколько я понял это еще один язык шаблонов... или я что-то не понял....

Это XSLT-шаблонизатор.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
N0dwis
Дата 6.12.2007, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 18.9.2007
Где: Луганск

Репутация: 1
Всего: 4



Шо-то это бред какой-то, а не шаблонизатор... Все равно все в куче - php, xhtml, xml.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0804 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.