Класс MAIN
Обработка запроса.
Parser обрабатывает запрошенный документ описанным ниже образом.
- Считываются, компилируются и инициализируются Конфигурационный файл; затем все файлы с именем auto.p, поиск которых производится начиная от корня веб-пространства, и ниже по структуре каталогов, вплоть до каталога с запрошенным документом; наконец, сам запрошенный документ. Все вместе они составляют определение класса
MAIN. Инициализация заключается в вызове метода auto каждого загруженного файла. Если определение этого метода содержит параметр, при вызове в нем будет передано имя загруженного файла.
Примечание: результат работы метода посетителю не выводится.
- Затем вызывается без параметров метод
mainклассаMAIN. Т. е. в любом из перечисленных файлов может быть определен методmain, и будет вызван тот, который был определен последним — скажем, определение этого метода в запрошенном документе перекрывает все остальные возможные определения, и будет вызван именно он. Результат работы этого метода будет передан пользователю, если не был определен метод postprocess. Если в файле не определен ни один метод, то все его тело считается определением методаmain.
Задание $response:body[нестандартного ответа] переопределяет текст, получаемый пользователем.
- Если в классе
MAINопределен метод postprocess, то результат работы методаmainпередается единственным параметром этому методу, и пользователь получит уже его результат работы. Таким образом разработчик получает возможность «дополнительной полировки» результата работы написанного кода.
Простой пример
Добавление такого определения, скажем, в файл auto.p в корне веб-пространства сайта:
@postprocess[body]
^if($body is string){
^body.match[шило][g]{мыло}
}{
$body
}
приведет к замене одних слов другими в результатах обработки всех страниц. Важно не забыть проверить тип body, ведь там может быть файл.