kidar2, что здесь пояснять?! убили прототип функции = убили саму функцию, и присвоили ей undefined для того, чтобы указать сборщику мусора, что можно чистить.
bedolazhka, ну т.е. дерево - понятно.
А я делаю "плоский гамбургер" и до тех пор, пока не пройдёт все проверки (проверка входных данных, сессия, юзер, взятие роутер-сегментов и т.д.), вообще не заходит в основной app.
Ну и как только что-то невалидно - сразу ныряем в app и там рендерим красивую страницу.
bedolazhka, ну в общем и надо делать, при запросе же однократно вызывается общий - значит так правильно. Главное - не запутаться в редиректах и зависимостях.
bedolazhka, добавить рядом ещё, что он залогинен или нет: $session_online и проверить на true или false. Тогда не придётся лазить в базу, если он не залогинен.
bedolazhka, "удалил юзера из БД" - это уже нестандартное поведение.
Проверяйте тогда каждый раз базу: удалили вы его там вручную или нет.
Обычно, при удалении, удаляется токен сессии. А токен доступа - передаётся в куках.
Несовпадение токена в базе и в куках - завершение сессии.
В общем, много тут нюансов.