Тут не поспоришь :) Вы мыслите "шаблонно" общепринятыми вещами, а у меня нестандартное мышление.
Я даже найдя вот пример для сохранения массива в готовый php файл, чтобы его потом просто инклюдить, и получить этот массив. Улучшил этот метод :) Вы не стали бы заморачиваться, пользовались тем что нашли, или кто что насоветовал, что ещё хуже.. Предпочитаю всегда думать своей головой, прогнозируя будущее и делать так чтобы в будущем было с этим меньше проблем.
Dreammaker, Никто ничего не перепутал, я отвечаю по своей разработке, silicoid, говорит о своём сайте, что у него стили тоже сборные.
Генерируется всего один раз при первой загрузке, потом берётся из кэша.
К странице подключается всего 2а файла:
<link type=text/css rel=stylesheet href=/skin/original.css> <link type=text/css rel=stylesheet href=/site/main.css>
Первый это стили скина(дизайна сайта, который может меняться выбором другого скина/дизайна(цветовая гамма и оформление)).
Второй относится к конкретной странице, в зависимости от размещённых на ней компонентов.
Оба эти файла собираются из кусочков движком, получаются не большие файлы, при желании можно ещё и сжать(удалить переносы строк и лишние пробелы) ещё и заархивировать gzip(ом).
Опять, вы не понимаете. UMI в xml находятся данные объектов, то есть как в базе, это не есть гуд, это устаревший метод(если есть необходимость хранить данные объекта в файле, то лучше уж в JSON).
У меня просто разметка(xml выбран для наглядности редактирования) где что будет, движок подключает узлы и те возвращают либо шаблоны(в которые будут вставлены данные дочерних элементов), либо уже готовую разметку с данными.
Варю :) cыроват ещё
Так и у меня загружаются сжатые только один раз.
Компоненты могут добавляться, удалятся, какие в них пропишут стили разработчики компонентов не известно. Движок всё собирает на лету, браузер по контрольной сумме определяет устарели стили, значит обновляет, нет, использует те что в кэше.
Движок так работает. Обычно запихивают все стили в файл и всё. У меня же движок формирует стили почти так же как страницу, смотрит что нужно, и вставляет. Не хочу таскать с собой что не пригодится.
И я же заранее не знаю, что пользователь укажет в структуре страницы своего сайта, какие компоненты ему будут нужны и какие для них стили. Это увидит движок в структуре страницы и сформирует её как надо.
тестовый код
// заголовок для браузера^ request(HTTPv)+" 200 OK"+>>;^ "Content-Type: text/html"+>>;^ "Charset: utf-8"+>>;^ >>+>>;// класс для форматирования страницы* MC+;@ LBL{String:result=lbl_[v1];};@ GDT{include(v1+".gdt");};@ WRD{String:result=$db.Value(v1,key.str,wrd.str);};@ LNC{ ? nvg=v1{String:result="class=active";[<];}; String:result="href=?nvg="+v1;};% lbd+List;% db+DatB;$db.List(lbd);$lbd.Add("LBL site\words");$lbd.Add("SLC site words");$db.Request;* *;? var(nvg)="unk" {String:nvg="main";};MC.String:nvg=nvg;MC.String:lbl_HOST=request(Host);MC.String:lbl_TITLE="ARBITRIUM";MC.String:lbl_DATETIME=datetimestr(,dd.mm.yy hh:nn:ss);% page+List;% reg+ReEx;loading(page,"html\site.tpl");$reg.Input($page.Text);loading(page,"html\"+nvg+".tpl");$reg.Expression("CONTENT");$reg.Replace($lbd.Text); //$page.Text$reg.Expression("(LBL|GDT)\{([^\}]+)\}");$reg.ReplaceEx(MC);$reg.Expression("(WRD|LNC)\{([^\}]+)\}");$reg.ReplaceEx(MC);$reg.Expression("(lbl|gdt|wrd)_\w+");$reg.Replace("");^ $reg.Input;
Синтаксис основан на спец символах, а команды могут быть какими угодно, подключается нужная библиотека и команды, функции доступны(делал поддержку названий команд и функций на русском даже).
Например:
^ такой знак означает вывод как echo в PHP, >> это перевод строки \r\n
* MC+; это работа в классе, а это * *; выход из класса в основную программу
? условный оператор ? var(nvg)="unk" {String:nvg="main";}; если переменная nvg="unk" {значит выполнить этот код}
Тоже уже забывать стал :(
На PHP с 2008 г. ничего не делал, сейчас приходится вспоминать и нововведения изучать.
Я разработал свой подход для стилей компонентов, цвета в переменных(при изменении цвета переменной, цвет в компоненте также изменится), дизайн в скинах с описанием тегов. Как и говорил движок смотрит структуру xml формирует страницу и подключает только нужные стили, один файл для всего сайта с основной структурой и небольшой к каждой конкретной странице если пользователь её запросит.
Нет специального образования, корочек программиста. Раньше пытался устроится, без корочек бесполезно. Потом интереснее делать то, что хочется, а не под заказ. Начинается с какой нибудь бредовой идеи(типа этой:)) а потом постепенно создаётся что-то большое.
С моим сервером получилась следующая история. По началу хотел просто приложение для удобства сделать, конструкторам, мастерам, по номенклатуре изделия, размеры, материал и тд. чтобы открыл посмотрел чертёж, без наворотов простенькую, ничего же сложного. Для сети нужен обмен данными межу компами, сделал простенький сервер. Потом подумал, а не сделать ли чтобы сайты мог выдавать, а для генерации страниц надо язык, ну и базу бы. Так и слепил.
Сайт вот сделаю на своём фреймворке :), потом может какой проект на своём этом ПО потестирую...
_SP_, всего лишь участвуете только, не факт, что конструктором, но уважуха, разработка медицинских приборов дело достойное.
Я вот по большей части наверно разрушитель, нежели созидатель. Участвовал в изготовлении гироскопов для приборов наведения ракет земля-воздух, делал карданы для БТРов, приборы безопасности башенных и др. кранов. Наружная реклама: объёмные буквы, световые короба и др.
Программирование хобби, с детства увлекаюсь, много что написал, прикладные программки, движки сайтов, торговые роботы для трейдинга, правда пользовался только я и знакомые. Свой сервер, с своим языком программирования, мини базой данных, сырой ещё правда.