назад Alt ←

Конфигурационный метод

 

Если в файле определен метод 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]