ArbNet

ArbNet
Рейтинг
146
Регистрация
27.10.2019
Программист самоучка
_SP_:
хотя его фигпоймешь

Тут не поспоришь :) Вы мыслите "шаблонно" общепринятыми вещами, а у меня нестандартное мышление.

Я даже найдя вот пример для сохранения массива в готовый php файл, чтобы его потом просто инклюдить, и получить этот массив. Улучшил этот метод :) Вы не стали бы заморачиваться, пользовались тем что нашли, или кто что насоветовал, что ещё хуже.. Предпочитаю всегда думать своей головой, прогнозируя будущее и делать так чтобы в будущем было с этим меньше проблем.

Dreammaker, Никто ничего не перепутал, я отвечаю по своей разработке, silicoid, говорит о своём сайте, что у него стили тоже сборные.

_SP_:
Но всё еще непонятно зачем генерить что-то для каждой страницы...

Генерируется всего один раз при первой загрузке, потом берётся из кэша.

К странице подключается всего 2а файла:


<link type=text/css rel=stylesheet href=/skin/original.css>
<link type=text/css rel=stylesheet href=/site/main.css>

Первый это стили скина(дизайна сайта, который может меняться выбором другого скина/дизайна(цветовая гамма и оформление)).

Второй относится к конкретной странице, в зависимости от размещённых на ней компонентов.

Оба эти файла собираются из кусочков движком, получаются не большие файлы, при желании можно ещё и сжать(удалить переносы строк и лишние пробелы) ещё и заархивировать gzip(ом).

edogs:
почитайте, будет полезно

Опять, вы не понимаете. UMI в xml находятся данные объектов, то есть как в базе, это не есть гуд, это устаревший метод(если есть необходимость хранить данные объекта в файле, то лучше уж в JSON).

У меня просто разметка(xml выбран для наглядности редактирования) где что будет, движок подключает узлы и те возвращают либо шаблоны(в которые будут вставлены данные дочерних элементов), либо уже готовую разметку с данными.

Stek:
дай хоть сайт что ли заценить

Варю :) cыроват ещё

Так и у меня загружаются сжатые только один раз.

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

ivan-lev:
Зачем? Для описанного случая выгоднее кэшировать один минифицированный файл (не думаю, что у Вас для разных страниц настолько много кастомных стилей..)

Движок так работает. Обычно запихивают все стили в файл и всё. У меня же движок формирует стили почти так же как страницу, смотрит что нужно, и вставляет. Не хочу таскать с собой что не пригодится.

И я же заранее не знаю, что пользователь укажет в структуре страницы своего сайта, какие компоненты ему будут нужны и какие для них стили. Это увидит движок в структуре страницы и сформирует её как надо.

Sly32:
А можно пример синтаксиса вашего языка?

тестовый код


// заголовок для браузера
^ 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" {значит выполнить этот код}

Тоже уже забывать стал :(

Sly32:
У меня впечатление уже что это не один человек.

На PHP с 2008 г. ничего не делал, сейчас приходится вспоминать и нововведения изучать.

Sly32:
Интересно, как же вы собираетесь с этим бороться? Насколько ваша поделка будет компактнее и быстрее, к примеру?

Я разработал свой подход для стилей компонентов, цвета в переменных(при изменении цвета переменной, цвет в компоненте также изменится), дизайн в скинах с описанием тегов. Как и говорил движок смотрит структуру xml формирует страницу и подключает только нужные стили, один файл для всего сайта с основной структурой и небольшой к каждой конкретной странице если пользователь её запросит.

Sly32:
Почему вы с таким еще не CEO како-нибудь крутого стартапа? Я вот вторые сутки изучаю детально Processes, Threads and isyncio - ничего не понимаю, даже свой Pool написать не могу... А тут свой сервер да и еще со своим языком... Тут весь наш департамент Python and Go в голос зарыдал - не выжить нам с такой конкуренцией...

Нет специального образования, корочек программиста. Раньше пытался устроится, без корочек бесполезно. Потом интереснее делать то, что хочется, а не под заказ. Начинается с какой нибудь бредовой идеи(типа этой:)) а потом постепенно создаётся что-то большое.

С моим сервером получилась следующая история. По началу хотел просто приложение для удобства сделать, конструкторам, мастерам, по номенклатуре изделия, размеры, материал и тд. чтобы открыл посмотрел чертёж, без наворотов простенькую, ничего же сложного. Для сети нужен обмен данными межу компами, сделал простенький сервер. Потом подумал, а не сделать ли чтобы сайты мог выдавать, а для генерации страниц надо язык, ну и базу бы. Так и слепил.

Сайт вот сделаю на своём фреймворке :), потом может какой проект на своём этом ПО потестирую...

_SP_, всего лишь участвуете только, не факт, что конструктором, но уважуха, разработка медицинских приборов дело достойное.

Я вот по большей части наверно разрушитель, нежели созидатель. Участвовал в изготовлении гироскопов для приборов наведения ракет земля-воздух, делал карданы для БТРов, приборы безопасности башенных и др. кранов. Наружная реклама: объёмные буквы, световые короба и др.

Программирование хобби, с детства увлекаюсь, много что написал, прикладные программки, движки сайтов, торговые роботы для трейдинга, правда пользовался только я и знакомые. Свой сервер, с своим языком программирования, мини базой данных, сырой ещё правда.

Всего: 2250