Начал создавать свой фреймворк для сайтов. Суть его следующая:
Поступает запрос на страницу например: site/contacts
Движок открывает файл структуры страницы site/contacts.xml
Затем разбирается структура xml и формируется готовая страница
Почему я так решил делать? Основной принцип это разделение данных от разметки, но так как в MVC шаблоны пишутся с встроенным php, то этот принцип уже не действителен. Раньше я применял метод вставки данных по меткам, но части разметки также приходилось писать в php, и для одной страницы нужно редактировать несколько файлов. Хотелось чтобы был один файл структуры страницы где небольшими вставками указываешь по мере надобности необходимое(хедер, футер, меню, слайдер и тд. и тп.) и движок это компоновал. Люди желающие делать сайты и не знающие php, html, css разных премудростей сайтостроения, но зная как создать структуру страницы легко смогут это делать.
В таком фреймворке всё разложено по отдельности. Те кто занимаются дизайном составляют шаблоны и стили которые лежат в директориях lay и css соответственно. Кто пишет на php могут добавлять свои классы(узлы, модули). Пользователь же создавая страницу просто указывает в структуре xml что надо подключить такие-то стили, узлы и какие шаблоны нужны в которых вместо меток вставить нужные данные из узлов обработчиков php.
Во-первых хотелось бы узнать ваше мнение по поводу такой идеи фреймворка для сайтов. Во-вторых основу такого фреймворка я сделал, но далее надо наполнять разными шаблонами, стилями, узлами. Хотелось бы узнать найдутся ли те кто захотят развивать данную идею, не плохо бы собрать сообщество фреймворка SNDL (Structure Node Data Layout — Структура Узел Данные Макет)
ArbNet
Плюсы минусы подходов генерации страницы.
Структуирование — мой подход с парсингом 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
Структуирование по-моему наилучший подход.
Mik Foxi
ArbNet, каждый программист в своей жизни должен создать свой фреймворк, cms, обосрать других программистов, потом вырасти и кодить то, что популярно и на что есть спрос, вордпресс например. Это норма 😀
Glueon
Если проект загнется, предлагаю переделать его в дорогенератор и зайти в соотв. раздел 🙂
ivan-lev
ArbNet: в MVC шаблоны пишутся с встроенным php
Хто сказал? [Практически(?)] к любому фреймворку можно прикрутить любой из более-менее <адекватных> {шаблонизаторов}..
ArbNet: Люди желающие делать сайты и не знающие php, html, css разных премудростей сайтостроения, но зная как создать структуру страницы легко смогут это делать.
«Конструкторов» хватает разношёрстных.. вон, Elementor, к примеру.. Битрикс тот же.. Там тоже компоненты можно «понавтыкать» и даже без знания XML.
ArbNet: Пользователь же создавая страницу просто указывает в структуре xml что надо подключить такие-то стили, узлы и какие шаблоны нужны
Ну, т.е. пользователь уже должен знать, как минимум, XML, указывать стили (а как они между собой дружить будут?), узлы (?) и шаблоны..
Удивительно
ArbNet, сколько вам лет?
Glueon
Удивительно: ArbNet, сколько вам лет?
Какая разница. Чем младше, тем полезнее будет опыт, насколько бессмысленным бы он сейчас не казался. Тут куча старых пердунов, которые живут в реалиях 2000х годов и не могут ничего по этой причине сдвинуть с места, и искренне удивляются, почему не получается зарабатывать больше со своими изъезженными схемами.
ArbNet
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;
Что касается стилей. Они также собираются как мозайка 🙂
На к странице подключаются два файла. Один основной для всего сайта, в котором указаны цвета, размеры, выравнивание, шрифты, каркас. А во втором уже собираются все нужные стили какие подключаются лэи(шаблоны). При запросе стилей страницы открывается структура страницы и через xpath(‘//@lay’) получается массив нужных стилей для лэев. Далее соответственно формируется нужный css.
———- Добавлено 28.10.2019 в 12:11 ———-
Получается так, что знание html и php не обязательно, не надо составлять шаблоны, стилизовать страницу, не надо программировать на php, думать где какие данные разместить и тд. Всё это сделает фреймворк. Надо просто указать то что хотите видеть на странице. Подключатся узлы, возьмутся нужные шаблоны и стили к ним, указываете какие данные нужны тому или иному шаблону. Всё.
ivan-lev
ArbNet: Подключатся узлы, возьмутся нужные шаблоны и стили к ним, указываете какие данные нужны тому или иному шаблону. Всё.
Из банального — сделайте активный пункт меню, соответствующий текущей категории 2-го уровня другим цветом, а родительскую категорию — открытым блоком. Ту же штуку — с хлебными крошками.
И да.. «точечку-маркер поменяйте на звёздочку..» заказчик попросил..
ArbNet
Легко. В админке будут все настройки, сам же заказчик в любое время сможет настроить как ему захочется. У меня знакомая так же придирается к таким мелочам, поэтому всё это я учёл. Изменять шаблоны стили к ним, а также подобные небольшие настройки формировании данных в узлах по мере надобности будет делаться в админке.
———- Добавлено 28.10.2019 в 13:19 ———-
Есть ещё мысль сделать в админке типа визуального редактора drag&drop перетаскиванием мыши в структуру будут добавляться необходимые элементы страницы. То есть заранее подготовить вставки xml, но это в перспективе.
ArbNet
Здравствуйте уважаемые форумчане!
Начал создавать свой фреймворк для сайтов. Суть его следующая:
Поступает запрос на страницу например: site/contacts
Движок открывает файл структуры страницы site/contacts.xml
Затем разбирается структура xml и формируется готовая страница
Почему я так решил делать? Основной принцип это разделение данных от разметки, но так как в MVC шаблоны пишутся с встроенным php, то этот принцип уже не действителен. Раньше я применял метод вставки данных по меткам, но части разметки также приходилось писать в php, и для одной страницы нужно редактировать несколько файлов. Хотелось чтобы был один файл структуры страницы где небольшими вставками указываешь по мере надобности необходимое(хедер, футер, меню, слайдер и тд. и тп.) и движок это компоновал. Люди желающие делать сайты и не знающие php, html, css разных премудростей сайтостроения, но зная как создать структуру страницы легко смогут это делать.
В таком фреймворке всё разложено по отдельности. Те кто занимаются дизайном составляют шаблоны и стили которые лежат в директориях lay и css соответственно. Кто пишет на php могут добавлять свои классы(узлы, модули). Пользователь же создавая страницу просто указывает в структуре xml что надо подключить такие-то стили, узлы и какие шаблоны нужны в которых вместо меток вставить нужные данные из узлов обработчиков php.
Во-первых хотелось бы узнать ваше мнение по поводу такой идеи фреймворка для сайтов. Во-вторых основу такого фреймворка я сделал, но далее надо наполнять разными шаблонами, стилями, узлами. Хотелось бы узнать найдутся ли те кто захотят развивать данную идею, не плохо бы собрать сообщество фреймворка SNDL (Structure Node Data Layout — Структура Узел Данные Макет)
ArbNet
Плюсы минусы подходов генерации страницы.
Структуирование — мой подход с парсингом 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
Структуирование по-моему наилучший подход.
Mik Foxi
ArbNet, каждый программист в своей жизни должен создать свой фреймворк, cms, обосрать других программистов, потом вырасти и кодить то, что популярно и на что есть спрос, вордпресс например. Это норма 😀
Glueon
Если проект загнется, предлагаю переделать его в дорогенератор и зайти в соотв. раздел 🙂
ivan-lev
в MVC шаблоны пишутся с встроенным php
Хто сказал? [Практически(?)] к любому фреймворку можно прикрутить любой из более-менее <адекватных> {шаблонизаторов}..
Люди желающие делать сайты и не знающие php, html, css разных премудростей сайтостроения, но зная как создать структуру страницы легко смогут это делать.
«Конструкторов» хватает разношёрстных.. вон, Elementor, к примеру.. Битрикс тот же.. Там тоже компоненты можно «понавтыкать» и даже без знания XML.
Пользователь же создавая страницу просто указывает в структуре xml что надо подключить такие-то стили, узлы и какие шаблоны нужны
Ну, т.е. пользователь уже должен знать, как минимум, XML, указывать стили (а как они между собой дружить будут?), узлы (?) и шаблоны..
Удивительно
ArbNet, сколько вам лет?
Glueon
ArbNet, сколько вам лет?
Какая разница. Чем младше, тем полезнее будет опыт, насколько бессмысленным бы он сейчас не казался. Тут куча старых пердунов, которые живут в реалиях 2000х годов и не могут ничего по этой причине сдвинуть с места, и искренне удивляются, почему не получается зарабатывать больше со своими изъезженными схемами.
ArbNet
Ну, т.е. пользователь уже должен знать, как минимум, XML, указывать стили (а как они между собой дружить будут?), узлы (?) и шаблоны..
Движок открывает xml структуру например
Чтобы было понятнее объясню о составлении структуры страницы.
xml имеет формат: <перефикс атрибут=»значение атрибута»>содержание</перефикс> или без содержания <перефикс атрибут=»значение атрибута»/>
перефикс — это метка данных в шаблоне куда нужно вставить содержание
атрибут — строго определен, если нужен шаблон меню ставим атрибут lay=»menu»
Итак. Движок берёт <nodes> и загружает нужные классы, у нас указан узел(класс) Menu. Затем берёт основной шаблон для html see=»site» то есть файл site.html. В этом шаблоне должна быть метка [content]. Затем смотрит дочерние данные. В content у нас есть метка для меню и какое-то содержание. Идём дальше, видим перефикс для меню загружаем шаблон меню lay=»menu» в этот шаблон нужно вставить список который нам даст функция узла fnc=»Menu».
основной шаблон {метка} — в реальном шаблоне такая [метка], тут поменял так как вставляется это ***91;content***93;
шаблон меню
ArbNet
Что касается стилей. Они также собираются как мозайка 🙂
На к странице подключаются два файла. Один основной для всего сайта, в котором указаны цвета, размеры, выравнивание, шрифты, каркас. А во втором уже собираются все нужные стили какие подключаются лэи(шаблоны). При запросе стилей страницы открывается структура страницы и через xpath(‘//@lay’) получается массив нужных стилей для лэев. Далее соответственно формируется нужный css.
———- Добавлено 28.10.2019 в 12:11 ———-
Получается так, что знание html и php не обязательно, не надо составлять шаблоны, стилизовать страницу, не надо программировать на php, думать где какие данные разместить и тд. Всё это сделает фреймворк. Надо просто указать то что хотите видеть на странице. Подключатся узлы, возьмутся нужные шаблоны и стили к ним, указываете какие данные нужны тому или иному шаблону. Всё.
ivan-lev
Подключатся узлы, возьмутся нужные шаблоны и стили к ним, указываете какие данные нужны тому или иному шаблону. Всё.
Из банального — сделайте активный пункт меню, соответствующий текущей категории 2-го уровня другим цветом, а родительскую категорию — открытым блоком. Ту же штуку — с хлебными крошками.
И да.. «точечку-маркер поменяйте на звёздочку..» заказчик попросил..
ArbNet
Легко. В админке будут все настройки, сам же заказчик в любое время сможет настроить как ему захочется. У меня знакомая так же придирается к таким мелочам, поэтому всё это я учёл. Изменять шаблоны стили к ним, а также подобные небольшие настройки формировании данных в узлах по мере надобности будет делаться в админке.
———- Добавлено 28.10.2019 в 13:19 ———-
Есть ещё мысль сделать в админке типа визуального редактора drag&drop перетаскиванием мыши в структуру будут добавляться необходимые элементы страницы. То есть заранее подготовить вставки xml, но это в перспективе.
Покачто хочется найти единомышленников.