Фреймворк SNDL

ArbNet
На сайте с 27.10.2019
Offline
52
14901

Здравствуйте уважаемые форумчане!

Начал создавать свой фреймворк для сайтов. Суть его следующая:

Поступает запрос на страницу например: site/contacts

Движок открывает файл структуры страницы site/contacts.xml

Затем разбирается структура xml и формируется готовая страница

Почему я так решил делать? Основной принцип это разделение данных от разметки, но так как в MVC шаблоны пишутся с встроенным php, то этот принцип уже не действителен. Раньше я применял метод вставки данных по меткам, но части разметки также приходилось писать в php, и для одной страницы нужно редактировать несколько файлов. Хотелось чтобы был один файл структуры страницы где небольшими вставками указываешь по мере надобности необходимое(хедер, футер, меню, слайдер и тд. и тп.) и движок это компоновал. Люди желающие делать сайты и не знающие php, html, css разных премудростей сайтостроения, но зная как создать структуру страницы легко смогут это делать.

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

Во-первых хотелось бы узнать ваше мнение по поводу такой идеи фреймворка для сайтов. Во-вторых основу такого фреймворка я сделал, но далее надо наполнять разными шаблонами, стилями, узлами. Хотелось бы узнать найдутся ли те кто захотят развивать данную идею, не плохо бы собрать сообщество фреймворка SNDL (Structure Node Data Layout - Структура Узел Данные Макет)

Блажен, кто не стремится сделать лучше: он не рискует быть не понятым.
ArbNet
На сайте с 27.10.2019
Offline
52
#1

Плюсы минусы подходов генерации страницы.

Структуирование - мой подход с парсингом xml

Нативный шаблон(MVC) - вставка в шаблоне php

Шаблонизация(метками) - php ищет метки в тексте и обрабатывает и заменяет

В [] буду ставить свою оценку по 5 бальной шкале.

Принцип разделения данных и шаблона?

Структуирование - [5] принцип работает

Нативный шаблон(MVC) - [3] в шаблонах не обойтись без вставок данных php

Шаблонизация(метками) - [4] я никогда не пользовался шаблонизаторами так как привыкать ещё и к его командам надо, делал свои простые шаблонизаторы с самыми нужными командами

Удобство в создании новых страниц?

Структуирование - [5] для меня это наилучшее решение, надо знать только принцип создания структуры - это просто

Нативный шаблон(MVC) - [3] надо знать html и php, поставил 3 так как обычные люди не хотят изучать html и php

Шаблонизация(метками) - [2] надо знать html и команды шаблонизатора, также не совсем удобно

Скорость генерации страницы?

Структуирование - [4] думаю немного медленнее чем MVC

Нативный шаблон(MVC) - [5] быстрая скорость

Шаблонизация(метками) - [1] медленная скорость

Подведём итоги:

Структуирование - оценка 5+5+4=14

Нативный шаблон(MVC) - оценка 3+3+5=11

Шаблонизация(метками) - оценка 4+2+1=7

Структуирование по-моему наилучший подход.

foxi
На сайте с 02.03.2011
Offline
877
#2

ArbNet, каждый программист в своей жизни должен создать свой фреймворк, cms, обосрать других программистов, потом вырасти и кодить то, что популярно и на что есть спрос, вордпресс например. Это норма :D

Антибот защита для сайта (https://antibot.cloud/ru.html#searchengines) (защита от кражи контента и спама) | ВебМастерские микроблоги (https://wmsn.biz/#searchengines) | Фокси SEO форум (https://foxi.biz/#searchengines)
Glueon
На сайте с 26.07.2013
Offline
172
#3

Если проект загнется, предлагаю переделать его в дорогенератор и зайти в соотв. раздел :)

Есть много IP-сетей в аренду под прокси, парсинг, рассылки (optin), vpn и хостинг. Телега: @contactroot ⚒ ContactRoot команда опытных сисадминов (/ru/forum/861038), свой LIR: сдаем в аренду сети IPv4/v6 (/ru/forum/1012475).
IL
На сайте с 20.04.2007
Offline
412
#4
ArbNet:
в MVC шаблоны пишутся с встроенным php

Хто сказал? [Практически(?)] к любому фреймворку можно прикрутить любой из более-менее <адекватных> {шаблонизаторов}..

ArbNet:
Люди желающие делать сайты и не знающие php, html, css разных премудростей сайтостроения, но зная как создать структуру страницы легко смогут это делать.

"Конструкторов" хватает разношёрстных.. вон, Elementor, к примеру.. Битрикс тот же.. Там тоже компоненты можно "понавтыкать" и даже без знания XML.

ArbNet:
Пользователь же создавая страницу просто указывает в структуре xml что надо подключить такие-то стили, узлы и какие шаблоны нужны

Ну, т.е. пользователь уже должен знать, как минимум, XML, указывать стили (а как они между собой дружить будут?), узлы (?) и шаблоны..

Удивительно
На сайте с 07.07.2009
Offline
216
#5

ArbNet, сколько вам лет?

Качественная семантика недорого ( https://moab.tools/ )
Glueon
На сайте с 26.07.2013
Offline
172
#6
Удивительно:
ArbNet, сколько вам лет?

Какая разница. Чем младше, тем полезнее будет опыт, насколько бессмысленным бы он сейчас не казался. Тут куча старых пердунов, которые живут в реалиях 2000х годов и не могут ничего по этой причине сдвинуть с места, и искренне удивляются, почему не получается зарабатывать больше со своими изъезженными схемами.

ArbNet
На сайте с 27.10.2019
Offline
52
#7
ivan-lev:
Ну, т.е. пользователь уже должен знать, как минимум, XML, указывать стили (а как они между собой дружить будут?), узлы (?) и шаблоны..

Движок открывает xml структуру например


<page TITLE="Главная">
<nodes>
Menu
</nodes>
<html see="site">
<content>
{menu}
Это содержание
<menu lay="menu">
<list fnc="Menu"/>
</menu>
</content>
</html>
</page>

Чтобы было понятнее объясню о составлении структуры страницы.

xml имеет формат: <перефикс атрибут="значение атрибута">содержание</перефикс> или без содержания <перефикс атрибут="значение атрибута"/>

перефикс - это метка данных в шаблоне куда нужно вставить содержание

атрибут - строго определен, если нужен шаблон меню ставим атрибут lay="menu"

Итак. Движок берёт <nodes> и загружает нужные классы, у нас указан узел(класс) Menu. Затем берёт основной шаблон для html see="site" то есть файл site.html. В этом шаблоне должна быть метка [content]. Затем смотрит дочерние данные. В content у нас есть метка для меню и какое-то содержание. Идём дальше, видим перефикс для меню загружаем шаблон меню lay="menu" в этот шаблон нужно вставить список который нам даст функция узла fnc="Menu".

основной шаблон {метка} - в реальном шаблоне такая [метка], тут поменял так как вставляется это ***91;content***93;


<!doctype html>
<html>
<head>
<title>{TITLE}</title>
<link type=text/css rel=stylesheet href=site/main.css>
<!-- script -->
</head>
<body>
{content}
</body>
</html>

шаблон меню


<menu class={class}>
{list}
</menu>
ArbNet
На сайте с 27.10.2019
Offline
52
#8

Что касается стилей. Они также собираются как мозайка :)

На к странице подключаются два файла. Один основной для всего сайта, в котором указаны цвета, размеры, выравнивание, шрифты, каркас. А во втором уже собираются все нужные стили какие подключаются лэи(шаблоны). При запросе стилей страницы открывается структура страницы и через xpath('//@lay') получается массив нужных стилей для лэев. Далее соответственно формируется нужный css.

---------- Добавлено 28.10.2019 в 12:11 ----------

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

IL
На сайте с 20.04.2007
Offline
412
#9
ArbNet:
Подключатся узлы, возьмутся нужные шаблоны и стили к ним, указываете какие данные нужны тому или иному шаблону. Всё.

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

И да.. "точечку-маркер поменяйте на звёздочку.." заказчик попросил..

ArbNet
На сайте с 27.10.2019
Offline
52
#10

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

---------- Добавлено 28.10.2019 в 13:19 ----------

Есть ещё мысль сделать в админке типа визуального редактора drag&drop перетаскиванием мыши в структуру будут добавляться необходимые элементы страницы. То есть заранее подготовить вставки xml, но это в перспективе.

Покачто хочется найти единомышленников.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий