Как происходит загрузка cms(framework) Joomla 3.9 по шагам? Какие SQL запосы и в какой последовательности выполняются и после загрузки каких файлов?

Есть задача реализовать многосайтовость на Joomla 3.9 (а именно сделать чтобы у субдоменов выводился разный контент по пунктам меню и чтобы управлялся по возможности с одной админки). С компонентами и плагинами которые предлагаются по теле коротко ознакомился, а так же с подходом развёртывания одной файловой CMS и её привязке к нескольким базам(по количеству сайтов), вопрос собственно не про многосайтовость. Есть время и возможно буду писать своё решение по теме, для этого хотелось бы более детально понимать как устроена загрузка CMS. Я уже ознакомился что описанная задача может быть реализована через написание системного плагина, при этом вижу что им не совсем удобно(хотя возможно я просто не понял как) менять модель меню(например файл /libraries/src/Menu/MenuItem.php), поскольку вопрос по обновлению возникает. Один из вариантов это например вместе с плагином размещать собственную копию MenuItem.php и SiteMenu.php а затем подключать их плагином через require_once до того как CMS сам их подгрузит. В этом случаи я проверил что автозагрузчик исходные файлы трогать не будет, что даст возможность переписать файлы по собственному усмотрению например добавить в MenuItem.php нужные поля а в SiteMenu.php переписать метод load в котором содержится SQL запрос к таблице с menu и внесением условия по привязки к сайтам не давать CMS Joomla получать пункты меню которые не относятся к субдомену. Но тут такой момент, если CMS обновит файлы MenuItem.php и SiteMenu.php при таком варианте всё равно будут использоваться те которые идут с плагином, что может означать что обновление не приведёт к появлению новых методов и полей(если такие будут). В общем то в этот вопрос я уже прилично закопался, вопрос в другом.

Напишите пожалуйста есть ли какие нибудь нормальные статьи о процессе загрузки CMS Joomla версии 3.9. Интересует прежде всего какие файлы загружаются, откуда и какие SQL запросы выполняются, что они возвращают и описание файлов что вообще там происходит. Ищу информацию, чтобы понять более детально процесс загрузки CMS Joomla 3.9, чтобы определиться как именно лучше добавить в модель меню новые поля и изменить SQL запрос в частности для реализации многосайтовости, то есть в частности чтобы понять оптимален ли вариант с системным плагином.

Если есть идеи или опыт по реализации мультисайтовости на Joomla - тоже отпишитесь.

Или может быть в Joomla 3.9 есть какой либо стандартный способ отладки, который поможет понять как именно загружается CMS, что и на каких этапах в Joomla происходит.
  • Вопрос задан
  • 263 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Flying
Ничто не даст вам так много знаний об устройстве и работе кода как вдумчивое хождение по нему с отладчиком.

Так что просто возьмите тот же PHPStorm, настройте там отладку через XDebug и потратьте день на то чтобы походить по коду, пройтись с самого начала. В результате вы начнёте лучше понимать код с которым работаете, при этом это будет ваше собственное, прямое, знание, а не знание почерпнутое из внешних источников.
Ответ написан
Комментировать
nikolaevevge
@nikolaevevge Автор вопроса
Так какие файлы в какой момент загружаются я нашёл и SQL тоже. Эту инфу я опубликовал здесь - blog.ivru.net/?id=170 если кому то потребуется.

Про Joomla Debug Console благодарю, не знал что такая штука есть. По крайней мере до 3-ей версии Joomla она не была менее информативной(или я не разобрался тогда).

Надо будет попозже скрины опубликовать где она включается.

Подожду может ещё кто что по теме напишет, пока не отмечаю решения.

Установка PHP Xdebuger на виртуальные выделенный сервер в CentOs 7 x64(предварительно был настроен репозиторий на PHP 7.2, подробнее тут blog.ivru.net/?id=156 )
5e09db8f49780758474027.jpeg

Строчка которую просит Joomla в файле php.ini для того чтобы в профилировании показывать адреса файлов(а не только стек вызова классов). Я разместил прямо вверху файла php.ini, это не значит что и Вам нужно размещать так же.
5e09dce8130b1421665618.jpeg
Попозже как будет время ещё закину скрины включения отладки в Joomla
Ответ написан
Комментировать
Dier_Sergio_Great
@Dier_Sergio_Great
Увлеченный человек
Включите режим "Отладка системы" в настройках админки.
После чего на странице появится панель, в которой Вы найдете точные ответы на свои расплывчатые вопросы. :)
. 5faea02161c14075609659.png
---------------------------------------------------------------------
5faea1ada570d831506941.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы