| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Шаблонный движок |
| Автор: awers 25.3.2008, 18:46 | ||
| Есть шаблонный движок, XML+XSLT. Суть заключается что документ разбит на Коллекции, в которых есть данные. Все методы класса абстрагируют DOM, который является недрами движка. Как вы считаете, стоит ли переделать все на массивы. Давайте подойдем к этому не только с точки зрения скорости (что немаловажно, но всеже), а с точки зрения удобности (к примеру в процессе работы со своим движком я могу применять XPath, а с массивами я уже лишусь этой возможности) Вот один из билдов
|
| Автор: flashaa 25.3.2008, 18:53 |
| awers, а пример работы можно? |
| Автор: awers 25.3.2008, 19:07 |
| flashaa, самый простой или с использованием всего функционала? |
| Автор: mishaSL 25.3.2008, 19:32 |
| awers, не много не понял. А зачем вам переделывать все на массивы? Какой из этого смысл? Пример работы с использованием того функционала, который вас не устраивает, если вы хотите его переделать... |
| Автор: awers 25.3.2008, 19:35 |
| mishaSL, просто задумался о нагрузке и необоснованных затратах на работу с DOM. В этом собственно и вопрос. А что в целом скажите? Такой шаблонный движек имеет право на жизнь? Предусмотрел все, начиная от авто-инклюда шаблонов (xsl-include сам прописывается в шаблон), до CSS инклюда |
| Автор: Smith 25.3.2008, 20:48 |
| если думать о быстродействии, то брать за шаблонизатор РНР) |
| Автор: awers 25.3.2008, 22:04 |
| Smith, а ты посмотри на это с точки зрения безопасности и рациональности. Дизайнер со знанием пхп - раз, давать недры пхп в руки дизайнера - увольте |
| Автор: flashaa 26.3.2008, 11:52 |
| awers, такой примерый, который бы подчеркнул особенности шаблонизатора, можно опустить общие для шаблонизаторов ньюансы. Просто хочется вникнуть, но нет времени вчитываться долго в код. |
| Автор: awers 26.3.2008, 16:29 |
| mishaSL, есть какие-то мысли/идеи по кешированию? буду благодарен ) |
| Автор: IZ@TOP 26.3.2008, 17:45 |
| На мой взгляд: 1. XSLT vs Smarty, PTemplate and etc Схема XML+XSLT более трудна для понимания, строга и требовательна к ресурсам. Тем не менее, если мы стремимся к идеологии разделения логики, данных и представления (взять тот же MVC), хотим оградить/обезопасить или просто унифицировать систему - мы берем за основу XML и XSLT. Тем более, что уже давным-давно вопрос распределения нагрузки не стоит в тупике и производители железа предоставляют каждый день что-то новое и более производительное (нет на денег/ресурсов? - проект не удался). Smarty, как шаблонный (или компонентный, как некоторые используют) движок, лично мне не нравится, ввиду своей громоздкости и устарелости. Для небольших и средних проектов - да, это то что нужно; для простоты и удобства (на первый взгляд) написания, когда нет времени разбираться в технологиях, искать решения, думать и строить собственную архитекуру, мы берем простой и универсальный Smarty. Мы его берем, потому что он зарекомендовал себя на этом поприще. Есть и другие шаблонизаторы. Есть написанный собственноручно. Но все это не идет в сравнение с гигантом Smarty и утвержденным W3C концорциумом стандартом XSLT, который применяется в производственных масштабах и все больше привлекает Web-разработчиков (это можно было бы сказать лет пять назад). Вот так. Больше и сказать-то нечего. Есть еще вариант. PlainPHPView. Говорить о нем не буду, по названию все понятно. 2. Кеширование. Понятное дело, что, многие шаблонизаторы позволяют кеширование на уровне файловой системы (в т.ч. Smarty). Но как организовать кеширование в схеме XML+XSLT? Я так же когда-то задумывался над этим вопросом. Были мысли сохранять отдельные ветви с данными в разных файлах, после собирать узлы из них. Были варианты использовании базы для их хранения. Было еще много каких мыслей; детский сад, одним словом. Самым простым ответом на этот вопрос является Memcache. Ведь незачем изобретать велосипед, верно? Можно вопсользоваться мудростью и опытом разработчиков livejournal. Возможно многие слышали, а кто-то его уже давно использует. Кто-то эффективно, кто-то не очень. Вот его я и предлагаю использовать. Кеширование на уровне данных модели в самой логике. Спасибо за внимание. |
| Автор: awers 26.3.2008, 17:57 |
| IZ@TOP, большое спасибо. Смарти мне жутко не нравится, значит буду копать в сторону memcache |
| Автор: IZ@TOP 26.3.2008, 18:24 |
| awers, если не планируется масштабирование системы, разнделение по серверам, можно и XCache заюзать. |
| Автор: awers 27.3.2008, 13:37 |
| IZ@TOP, посмотрел. Но таких нагрузок нет, что бы пришлось ставить такой кешер. Куда проще memcache |
| Автор: IZ@TOP 27.3.2008, 13:46 |
| awers, XCache как раз попроще будет (и чуть быстрее). Memcache куда более интересен в ситуации, когда у тебя распределенная система. К примеру - прокси-балансер, который распределяет нагрузку на несколько серверов frontend/backend. |
| Автор: Хоббит 29.3.2008, 19:36 |
| awers про какую систему вы говорите, не про flux cms или bitflux как ее называют еще. Если да, то на многие вопросы по работе с ней могу дать совет. Эта Cms тоже построена на принципе xml + xslt. Работаю с ней уже долгое время. Нарицаний к производительности мало (кстати большая часть в таких движках уходит на работу с dom (но ее опять можно оптимизировать), на xsl преобразование уходит совсем мало времени.. около 1% всей работы cms (php5)), хотя модель кэширования пришлось реализовывать свою. |
| Автор: awers 29.3.2008, 19:52 |
| Хоббит, нет ) я пишу собственную cms |
| Автор: Хоббит 31.3.2008, 19:04 |
| Может зря? Посморти на flux, архитектура там хорошая. |
| Автор: awers 31.3.2008, 22:34 |
| Хоббит, ом. Сейчас втыкаю в Zend Framework полным ходом. У меня с ними очень схожее мышление, поэтому думаю останусь пока так ) |