parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Вот, смотрите:

Givi 20.02.2005 19:27

Считываются, компилируются и инициализируются Конфигурационный файл; затем все файлы с именем auto.p, поиск которых производится начиная от корня веб-пространства, и ниже по структуре каталогов, вплоть до каталога с запрошенным документом; наконец, сам запрошенный документ.
Все вместе они составляют определение класса MAIN.
Инициализация заключается в вызове метода auto каждого загруженного файла. Если определение этого метода содержит параметр, при вызове в нем будет передано имя загруженного файла.
Вот допустим у нас есть корневой auto.p, с методами @auto[] и main[] и файл index.html с методами @auto[] и @body[]...

auto.p
@auto[]
$MAIN:pSQL[^mysql::init[$SQL.connect-string]]

@main[]
^MAIN:pSQL.server{
	^body[]
}
index.html
@auto[]
$q[^MAIN:pSQL.sql[int]{SELECT COUNT(*) FROM table}]

@body[]
<p>Count - $q</p>
Теперь смотрите, что происходит. Сначала инициализируется метод auto из auto.p. В нём не происходит подключения, мы просто инициализируем объект $MAIN:pSQL. Затем вызывается метод auto из index.html, в этом методе мы пытаемся отправить серверу запрос НО, подключение осуществляеться из метода @main[] auto.p, который вызывается уже в конце сборки класса $MAIN. Естественно мы огребаем ошибку...