Конфигурационный метод
Если в файле определен метод conf, он выполняется первым, до auto, и задает важные системные параметры:
- файлы, описывающие кодировки символов;
- ограничение на размер HTTP-POST-запроса;
- ограничение на размер загружаемых файлов [3.4.5];
- ограничения на число итераций в циклах и глубину рекурсии [3.4.5];
- сервер или программу отправки почты;
- SQL-драйверы и их параметры;
- таблицу соответствия расширения имени файла и его MIME-типа.
Рекомендуется поместить этот метод в конфигурационный файл.
Определение метода:
@conf[filespec]
filespec — полное имя файла, содержащего метод.
Кодировки
Всегда доступна и не нуждается в загрузке файла кодировка UTF-8, являющаяся для Parser кодировкой по умолчанию. Чтобы сделать доступными для использования Parser другие кодировки, необходимо указать файлы, их описывающие. Делается это так:
$CHARSETS[
$.windows-1251[/полный/путь/к/windows-1251.cfg]
…
]
См. «Описание формата файла, описывающего кодировку».
Лимиты
$LIMITS[
# Максимальный размер POST-данных, по умолчанию — 10 МБ:
$.post_max_size(10*0x400*0x400)
# Максимальный размер загружаемых в память файлов, по умолчанию — 512 МБ:
$.max_file_size(512*0x400*0x400)
# Максимальное число элементов в массивах, по умолчанию — 1 000 000:
$.max_array_size(1000000)
# Максимальное число итераций в циклах, по умолчанию — 100 000:
$.max_loop(100000)
# Максимальная глубина рекурсии, по умолчанию — 1000:
$.max_recursion(1000)
# Время ожидания доступности файла для блокировки чтения или записи, по умолчанию — 9,5 сек.:
$.lock_wait_timeout(9.5)
]
Установка max_file_size, max_array_size, max_loop, max_recursion в нулевое значение означает «без ограничений».
Отправка писем
Параметр отправки писем (см. ^mail:send[…])
Под Windows и UNIX адрес SMTP-сервера
$MAIL[
$.SMTP[mail.office.design.ru]
]
Под UNIX в safe-mode-версиях настроить программу отправки можно только при сборке Parser из исходных кодов, в бинарных версиях, распространяемых с сайта parser.ru, задана команда /usr/sbin/sendmail —i —t —f postmaster.
Только в unsafe-mode-версиях можно задать программу отправки почты самостоятельно:
$MAIL[
$.sendmail[/custom/mail/sending/program params]
]
В зависимости от системы по умолчанию используется команда /usr/sbin/sendmail —t —i —f postmaster или /usr/lib/sendmail —t —i —f postmaster.
При отправке письма вместо postmaster будет подставлен адрес отправителя из письма из обязательного поля заголовка from.
Таблица SQL-драйверов:
$SQL[
$.drivers[^table::create{protocol driver client
mysql /full/disk/path/parser3mysql.dll libmariadb.so,libmysqlclient.so
odbc /full/disk/path/parser3odbc.dll
pgsql /full/disk/path/parser3pgsql.dll libpq.so
sqlite /full/disk/path/parser3sqlite.dll libsqlite3.so
oracle /path/to/parser3oracle.dll C:\Oracle\Ora81\BIN\oci.dll?PATH+=^;C:\Oracle\Ora81\bin
}]
]
В колонке client таблицы drivers можно указывать сразу несколько клиентских библиотек, перечисляя их через запятую (будет использоваться первая доступная из перечисленных) [3.5.0]. Кроме того, в драйвере Oracle допустимы параметры клиентской библиотеки, отделяемые знаком ? от имени файла библиотеки, в таком виде: имя1=значение1&имя2=значение2&…, а также имя+=значение.
Эти переменные будут занесены = или добавлены к имеющемуся значению += в программное окружение (environment) перед инициализацией библиотеки. В частности, удобно добавить путь к Oracle-библиотекам здесь, если этого не было сделано в системном программном окружении (system environment).
Таблица типов файлов:
# файл, создаваемый ^file::load[…],
# при выдаче в $response:body задаст этот $response:content-type
$MIME-TYPES[^table::create{ext mime-type
7z application/x-7z-compressed
…
zip application/zip}]
Расширения имен файлов в таблице должны быть написаны в нижнем регистре. Поиск по таблице нечувствителен к регистру, т. е. файл FACE.GIF получит MIME-тип image/gif.
Прочие настройки
При задании $STRICT-VARS(true) будет выдаваться исключение в случае попытки обращения к неинициализированным пременным. [3.4.2]
При задании $LOCALS(true) все переменные всех методов всех классов будут считаться локальными. [3.4.6]