# index.php
// префикс BL, который всех нас достал я опускаю
include_once 'path/to/loader.php';
$dirs = include 'config/dirs.php';
$loader = new Loader($dirs);
$loader ->register();
$context = Context::instance()->injectLoader($loader);
$adminPrefix = $context->get('settings.main.admin'); // админка может по-разному адресу быть расположена: /admin/* , /foo-bar/*
$appType = stripos($adminPrefix, $context->request()->getUri()) === 0 ? App::BACKEND : App:FRONTEND;
App::run($appType, $context);
То есть как вы видите, приложение может быть бекендом или фронтендом. Для этих двух типов свои навешивания на события, шаблоны в разных папках, у контроллеров разные префиксы, совершенно разный роутинг, еще какие-то различные вещи.
Я тут посмотрел на Мадженту и подумал: а зачем вот так разделять приложение? По сути же админка - тот же фронтенд, разве что выглядит иначе + проверка на вход.
Вопрос: стоит ли делать такое объединение? Если да, то как отделить стиль для админки от стиля сайта (см. Пакеты дизайна)? Нужно ли отделять события админки от событий фроненда? Когда и где проверять залогинен ли пользователь: по событию preExecute, которое выполняется перед вызовом контроллера?