A
A
Alexey Babiev2017-06-24 07:15:16
CMS
Alexey Babiev, 2017-06-24 07:15:16

How to correctly build the loading logic of a modular site?

I develop an engine for my own projects. The engine is modular. Each module is a class in a separate file, a set of smart templates and database entries.
At the moment, two landing pages, an internal web service and a blog are running on the engine. But all this is built on fragmentary knowledge and, at times, intuitively. Who cares, under the spoiler is the current download scheme.

spoiler
Ядро движка - несколько статик-классов отвечающих за БД, настройки, пользователя, логирование, разбор УРЛ и т. п.
При загрузке ядро анализирует УРЛ, настройки, права пользователя и другие данные.
Исходя из этих данных делает выборку требуемых модулей из БД, подключает и исполняет каждый модуль. Для этого в классе модуля есть метод execute().
Модули также анализируют аналогичные данные и формируют информацию для вывода.
После исполнения модулей ядро вызывает по каждому модулю метод out(), который инклудит в буфер нужные шаблоны. Буфер для каждой позиции основного шаблона свой.
Буферизированный вывод присваивается переменным основного класса Site и инклудится основной шаблон.
Один модуль может выводиться в разные позиции страницы и по разным адресам. Для этого есть таблица в БД, которая содержит имя модуля, позицию, УРЛ, и параметры в json.
Именно из этой таблицы движок и берёт данные, что, куда и как выводить.

But I want to know if there are any well-known, well-established methods, so as not to reinvent the wheel. Can you tell me from your personal experience or what to read?
UPD: The answer is here - https://habrahabr.ru/post/116834/

Answer the question

In order to leave comments, you need to log in

2 answer(s)
A
Alexander Pushkarev, 2017-06-24
@axsmak

See the symfony structure for all the best practices.

V
Vasyl Kovbassa, 2017-06-24
@movasyl

Look towards frameworks.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question