NPJ next : РазборУрла

Разбор URL


1. Урл обрабатывается с помощью mod_rewrite, который приводит его к виду index.php?page="owner/page/handler", в результате чего при инициализации объекта $rh строка «owner/page/handler» оказыватся доступной через $_GET. После этого строка запроса парсится и формируется объект, для которого вызывается необходимый хэндлер. Результатом его выполнения будет запрошенная страница, вывод формы или осуществление какого-то действия. Например, урл вида http://npj.ru/node/document/edit обратится к файлу http://npj.ru/index.php, который сформирует супертаг node@npj:document и вызовет для него хэндлер /npj/handlers/record/edit.php, который считает из БД страницу с указанным супертагом, сформирует форму для редактирования и поместит полученный текст в форму для редактирования.
2. $rh – это инстанс NpjRequestHandler, который хранит весь рабочий контекст и вызывает нужные функции в зависимости от полученного через $_GET урла. Непосредственно разбор урла происходит в NpjRequestHandler::_~HandleRequest()
3. При переходе к новой странице в результате обработки какой-нибудь формы, НПЖ для передачи нужной ему информации использует абстракцию состояния, реализуемую с помощью базового класса /core/classes/StateSet.php. Этот класс нуждается в рефакторинге.