пути обXMLливания :)...

chameleon

Новичок
пути обXMLливания :)...

Что-то тихо в форуме :)....
Есть наследованная самоделка (типа XML_CMS). Состав:
1. xml-описание структуры страницы впростенького сайтика (html+спец.тэги для вставки блоков - т.е. шаблон) - "pagelayout.xml".

2. xml-контент (это уже другой документ) формируется php-скриптом ессно - существует только в domxml на время жизни скрипта.
3. Стандартный XSLT для представления (преобразования в html) стандартных же элементов (спец.- и неспец.тегов) на основе документов xml-шаблона и xml-контента - "show.xsl"
4. Набор стандартных модулей для сайта (голосование "vote.php", новости "news.php", календарик "calendar.php" и т.п.)...все они преимущественно работают с БД.
Вооот...
информацию о том какие модули будут на странице хочется держать только в самом шаблоне страницы (сейчас просто тупо инклюдятся все модули (!) независимо есть они в шаблоне страницы или нет, т.к. их немного), т.е. если в шаблоне тег <block name="news"/> присутствует то подключается модуль news.php (грубо)...
как делать?
1. Загужать xml-шаблон "pagelayout.xml" в domxml; делать get_elements_by_tagname('block'); далее include("@name"+".php") циклом по результатам. (все очень образно). Все делает "главный" скрипт (main.php) который создает чистый xml ($page), делает коннект к БД ($conn) и инклюдит модули, которые уже используют $page и $conn для своей работы и вставки результатов в главное дерево....
2. Либо делать в xslt (промежуточная трансформация xml-шаблона?) с функцией document(concat(@name,'.php?param=bla-bla')). в шаблонах которые match="block". Тогда каждый модуль должен будет делать свой коннект к БД и отдавать "чистый" xml (что мне почему-то нравится :)...а вот например при коннекте с Oracle критично ли упадет быстродействие в целом если каждый модуль будет пытаться делать свое соединение?

Или мож велосипед уже? (только не тыкайте меня в Cocoon там какой-нить - нереально все так быстро переписать).. Хотя это и не важно :)...система рабочая можно вообще оставить все как есть...но чувствую скоро придется делать еще один сайт на этом, блин, frameworkе.... с некоторым увеличением количества модулей :)...пока есть время можно переделать чуток :)...
PS если чего непонятно я дорасскажу :)...
уфф....аж пальцы устали...
 

slach

Новичок
первый вариант адназначно

второй вариант ГУАНО по определению... потому как требует дополнительного реквеста XSLT процессора... что отжирает ресурсы не слабо...

и да, чуть не забыл... ТЕМА ОБСУЖДАЛАСЬ раз этак 6 или 7 в разных реинкорнациях...

почитай про Cocoon или Krysalis посмотри как там сделано
 
Сверху