Особый файл |
Bitrix Framework имеет ряд специфичных настроек ядра, которые не имеют визуального интерфейса редактирования. Этот подход вызван тем, что изменение настроек или ошибка в них легко могут привести к неработоспособности системы (настройки подключения к базе данных, настройки кеширования и т.д.).
Настройки в D7 выполняются в файле /bitrix/.settings.php. Напомним, что в старом ядре аналогичные настройки выполнялись в файле /bitrix/php_interface/dbconn.php. Файл .settings.php структурно сильно отличается от прежнего dbconn.php.
Примечание: т.к. в системе параллельно используются 2 ядра — старое ядро и D7, то и оба файла настроек используются одновременно. Поэтому необходимо производить настройки обоих файлов.
Даже если вы используете код только старого ядра, то файл .settings.php должен быть создан. Возможна ситуация, когда при установке обновлений какой-то из встроенных механизмов системы будет переписан на ядро D7. Если этот файл корректно не настроен, то это может привести к неработоспособности системы.
Иногда бывают ситуации, что файл .settings.php отсутствует. Его можно создать в автоматическом режиме, если выполнить в
командной строке
Командная PHP-строка — инструмент системы, позволяющий запускать произвольный код на PHP с вызовами функций. Подробнее…
:
BitrixMainConfigConfiguration::wnc();.
Править параметры можно с помощью класса Configuration (BitrixMainConfigConfiguration).
Примечание: Некоторые секции файла настроек содержат параметр readonly. Этот параметр означает, что данные настройки не будут изменены через API.
Кроме этого настройки могут задаваться в файле .settings_extra.php. Базовый файл настроек содержит неизменные настройки, к которым есть API. Файл .settings_extra.php может содержать произвольный код, который меняет настройки динамически. Соответственно к нему нет API.
Описание параметров |
Ниже описаны параметры, которые возможны для изменения:
Секция cache
Отвечает за настройки кеширования, позволяет задать способ кеширования и его параметры.
|
До версии 18.5.200 действовал такой формат записи: |
|---|
В версии 18.5.200 формат записи был изменён одновременно с возможностью использовать в кешировании Redis. Оба формата на данный момент работоспособны, но вендор настойчиво рекомендует использовать новый вариант записи.
|
Примеры нового формата записи для разных способов кеширования. |
|---|
| Параметр | Значение |
| type | В качестве значения можно задать:
или указать массив со значениями:
|
| cache_flags | Запрет на кеширование выборки или изменение ttl. Для этого установите ключи, куда входит название таблицы и суффиксы:
'cache_flags'=> array(
'value'=> array(
"b_group_max_ttl" => 200,
"b_group_min_ttl" => 100,
)
),
Устанавливая |
Примечание: Кроме type могут быть дополнительные параметры, если они нужны конкретному классу кеширования.
Примечание: Настройки memcache могут задаваться так же в файле /bitrix/.settings_extra.php.
|
Пример файла /bitrix/.settings_extra.php |
|---|
В базовом файле .settings.php содержатся неизменные настройки, к которым есть API. Файл .settings_extra.php может содержать произвольный код, который меняет настройки динамически в зависимости от каких-либо факторов. Соответственно для изменения настроек в этом файле нет API. Естественно в ходе выполнения этого произвольного кода должен быть возвращен массив подобной структуры базового файла.
Секция exception_handling
Отвечает за обработку ошибок.
'exception_handling' => array (
'value' => array (
'debug' => false,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
),
| Параметр | Значение |
| debug | Ключ отвечает за то, будет ли выведена ошибка на страницу в браузере. Выводить ошибки рекомендуется только на время разработки или отладки. Иначе потенциально может быть разглашение информации. |
| handled_errors_types | В ключе задаются типы ошибок, которые система отлавливает (не игнорирует). |
| exception_errors_types | В ключе задаются типы ошибок, при которых система выбрасывает исключение. |
| ignore_silence | Ключ отменяет действие оператора управления ошибками (@). |
| log | В ключе задаются параметры логирования ошибок. Если ключа нет — логирования не будет. Если задать как показано в примере:
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
то логироваться будет в файл с ограничением его размера. Если в корне сайта лежит файл error.php и выключен вывод ошибок на экран, то этот файл будет подключен в случае возникновения необработанного исключения. Если задать в общем случае, то можно логировать куда угодно: 'log' => array(
'class_name' => 'MyLog', // custom log class, must extends ExceptionHandlerLog;
// can be omited, in this case default DiagFileExceptionHandlerLog will be used
'extension' => 'MyLogExt', // php extension, is used only with 'class_name'
'required_file' => 'modules/mylog.module/mylog.php' // included file, is used only with 'class_name'
'settings' => array( // any settings for 'class_name'
),
),
В приведенном примере:
|
| assertion_throws_exception | Включение поддержки команды assert. |
| assertion_error_type | В ключе задаются типы ошибок, для которых не верный assert выбрасывает исключение. |
В handled_errors_types, exception_errors_types, assertion_error_type необходимо передать тип ошибки. Тип ошибки представляет из себя числовой код. Но коды знать и помнить не нужно. Например, параметр exception_errors_types. Что означает данная запись: E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING?
Для начала обратимся к уровням ошибок интерпретатора PHP. Есть определенные значения и определенные константы, которые им соответствуют. В нашем же случае данная запись означает, что E_ALL (значение константы 2047), побитовое и не E_NOTICE, и не E_WARNING и не E_STRICT и не E_USER_WARNING и не E_USER_NOTICE и не E_COMPILE_WARNING. То есть E_ALL за исключением далее указанных констант, которые определяют тот или иной уровень ошибок интерпретатора PHP.
Секция connections
Внимание! С версии главного модуля 20.900.0 ядро продукта не использует параметры соединения БД из файла dbconn.php, настройки читаются только из .settings.php.
Параметры соединения с базой данных и другими источниками данных. Задается имя класса и параметры соединения.
'connections' => array (
'value' => array (
'default' => array (
'className' => '\Bitrix\Main\DB\MysqlConnection',
'host' => 'localhost:31006',
'database' => 'admin_bus',
'login' => 'admin_bus',
'password' => 'admin_bus',
'options' => 2,
'handlersocket' => array (
'read' => 'handlersocket',
),
),
'handlersocket' => array (
'className' => '\Bitrix\Main\Data\HsphpReadConnection',
'host' => 'localhost',
'port' => '9998',
),
),
'readonly' => true,
),
Внимание: Начиная с версии ядра 14.5.2 и выше возможно использование расширения mysqli.
'className' => '\Bitrix\Main\DB\MysqliConnection',
Также для этого в PHP должно быть установлено расширение mysqli, дополнительные проверки на наличие расширения не производятся! Включать mysqli нужно отдельно для старого (dbconn.php) и (.settings.php) ядра D7.
| Параметр | Значение |
| options | Задаются флаги постоянного соединения и отложенности соединения с базой. Например: Connection::PERSISTENT == 1 Connection::DEFERRED == 2 Можно записывать их комбинации с помощью битовых операций. Например 3 — это и PERSISTENT, и DEFERRED. |
| handlersocket | В ключе указывается, какое соединение использовать для чтения (ключ read). Необходимо создать подключение, где будут указаны класс, хост и порт. В примере кода выше установлен параметр read, у которого указано значение handlersocket. А ниже собственно описание для соединения handlersocket Традиционные ACID Базы данных в целом ряде задач затрудняют реализацию проектов. Для решения этих задач были предложены технологии NoSQL и HandlerSocket (в виде плагина к обычной MySQL). Подробнее… . |
| className | имя класса, в которой собственно реализуется работа с конкретным типом БД. |
| host | имя хоста, где находится база данных. можно указать с портом |
| database | имя базы |
| login | логин пользователя базы данных |
| password | пароль пользователя базы данных |
Корневая секция
В корневой секции размещаются настройки общего характера.
| Параметр | Значение |
| disable_iconv | Запрещает использование библиотеки iconv. Аналог константы BX_ICONV_DISABLE в старом ядре. |
| logger | Логгеры, реализующие интерфейс PSR-3. Подробнее… |
Секция pull
Эта секция реально нужна только для хостинг-партнеров (для автоматизации развертывания), для всех остальных рекомендуется использовать настройку через административный интерфейс.
|
Пример кода секции и таблица параметров |
|---|
Секция http_client_options
Секция задаёт опции по умолчанию для класса BitrixMainWebHttpClient.
| Параметр | Значение |
| redirect | по умолчанию true, производить редирект |
| redirectMax | максимальное число таких редиректов (по умолчанию 5) |
| waitResponse | если true, то — ожидание ответа (по умолчанию), в ином случае — сразу возврат ответа |
| socketTimeout | время ожидания ответа в секундах (по умолчанию 30) |
| streamTimeout | таймаут потока в секундах (по умолчанию 60) |
| version | версия http — 1.0 или 1.1 (по умолчанию 1.0) |
| proxyHost / proxyPort / proxyUser / proxyPassword | группа параметров для установки прокси |
| compress | если true, будет послан Accept-Encoding: gzip |
| charset | кодировка для тела объекта (используется в поле заголовка запроса Content-Type для POST и PUT) |
| disableSslVerification | если true, верификация ssl-сертификатов производиться не будет |
Пример настройки:
'http_client_options' =>
array (
'value' =>
array (
'redirect' => true,//делаем редиректы, если требуется
'redirectMax' => 10,//но не более 10
'version' => '1.1'//работаем по протоколу http 1.1
),
'readonly' => false,
),
Правильно ли вы указали настройки, можно проверить так:
use BitrixMainConfigConfiguration;
print_r(Configuration::getValue("http_client_options"));
Должен быть выведен ваш массив.
Секция services
Секция предназначена для регистрации сервисов. Подробнее о настройках смотрите в уроке
Сервис Локатор
Сервис локатор (локатор служб) — это шаблон проектирования для удобной работы с сервисами приложения. Идея сервиса в том, что вместо создания конкретных сервисов напрямую (с помощью new), используется специальный объект (сервис локатор), который будет отвечать за создание, нахождение сервисов.
Подробнее …
Секция routing
Секция отвечает за подключение файлов с конфигурацией маршрутов
роутинга
Доступно в модуле main начиная с версии 21.100.0.
Подробнее…
, которые располагаются в папках /bitrix/routes/ и /local/routes/. Для подключения файлов опишите их:
'routing' => ['value' => [ 'config' => ['web.php', 'api.php'] ]], // подключатся файлы: // /bitrix/routes/web.php, /local/routes/web.php, // /bitrix/routes/api.php, /local/routes/api.php
Секция session
Ядро поддерживает четыре варианта для хранения (файлы, redis, database, memcache) данных сессии. Способ хранения описывается в секции session. Подробнее.
Ключ crypto_key
Чтобы ядро могло шифровать данные необходимо указать в настройках /bitrix/.settings.php ключ crypto_key. Подробнее…
Секция smtp
С версии 21.900.0 модуля main в файле /bitrix/.settings.php можно использовать опцию smtp, которая позволяет
включить
Чтобы в продуктах 1С-Битрикс: Управление сайтом и коробочных версиях Битрикс24 включить возможность использования SMTP-сервера отправителя, отредактируйте файл /bitrix/.settings.php, добавив следующий код:
Подробнее…
возможность использования SMTP-сервера отправителя и организовать разделение потоков отправки писем.
Список ссылок по теме:
- Пример скрипта для редактирования настроек. (блог)
Думаю, объяснять, что такое логи — нет необходимости. Имея под рукой логи проще разобраться с возникшими проблемами и выяснить, когда и почему они начались. В данной статье расскажу основные моменты в использовании логов.
Для начала обсудим важный, но не для всех явный момент — логи полезны только в том случае, если с ними удобно работать.
Поэтому логи не должны занять все свободное пространство на диске, т.е. в логи нужно помещать только нужную информацию, а не все подряд. Устаревшие логи должны удаляться. Для удаления устаревших логов лучше всего настроить задание на cron.
Логи должны быть удобными для изучения — логи с ошибками и логи с диагностическими данными должны помещаться в разные файлы. Желательно разделять логи на временные интервалы — например, ежедневные логи (наиболее распространенный вариант, но если уверены, что логов будет мало — можно выделять, например, по месяцам, или неделям).
Все логи нужно держать в одной папке, чтобы было удобней их изучать (/logs/, /_logs/, /local/logs/ и т.п. ). В целях защиты следует закрыть доступ к папке с логами по http — настраивается в .htacces,
deny from all
и/или добавить к названию файла уникальный для проекта постфикс.
Папку для логов надо предварительно создать и убедиться, что битрикс (веб-сервер) имеет права на запись в нее.
В системе 1С-Битрикс существует 2 вида логов
AddMessage2Log(…)
Это функция из старого ядра.
Многие модули пишут через нее отладочную информацию.
Пример настройки места хранения логов, выводимых данной функцией, выглядит так (не забывайте, что папка logs/bx должна быть создана):
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"] . "/logs/bx/" . date("Y-m-d") . ".log");
Прописать данную настройку можно, например, в dbconn.php.
Секция exception_handling в файле .settings.php
Это уже функционал нового ядра.
Ядро через данный функционал пишет информацию обо всех ошибках и исключениях. Что именно пишется — зависит от настроек.
Пример настройки логов с разделением по дате:
'exception_handling' => array (
'value' => array (
'debug' => false, // disables error output to screen
// ошибки для вывода в лог
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_WARNING,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_COMPILE_WARNING,
'ignore_silence' => true,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
'file' => "logs/bx_error/" . date("Y-m-d") . ".log",
'log_size' => 1000000, // ~ 1Mb per file
),
),
),
'readonly' => true,
),
Функции отладки в ядре D7
На замену функции AddMessage2Log в ядре D7 пришли новые функции:
use BitrixMainDiagDebug; Debug::dumpToFile($_SERVER); // для случаев, когда нужен var_dump Debug::writeToFile($_SERVER); // когда нужен print_r
Также в ядре D7 появились методы, для измерения времени. В старом ядре аналогов не было.
use BitrixMainDiagDebug;
Debug::startTimeLabel("foo");
foo();
Debug::endTimeLabel("foo");
Debug::startTimeLabel("bar");
bar();
Debug::endTimeLabel("bar");
print_r(Debug::getTimeLabels());
Таким образом, корректная расстановка функций логирования и временных меток позволит обнаружить уязвимости в коде и
уменьшить время отдачи сайта от сервера пользователю.
Обработка ошибок в Битрикс
При разработке под Битрикс можно пользоваться не только логами, установленными в конфигурации сервера, но и своими. Для этого нужно настроить обработчик ошибок в секции exception_handling в файле /bitrix/.settings.php.
'exception_handling' =>
array (
'value' =>
array (
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING,
'ignore_silence' => true,
'assertion_throws_exception' => false,
'assertion_error_type' => 256,
'debug' => true,
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
),
),
-
handled_errors_types — типы обрабатываемых ошибок
-
exception_errors_types — типы ошибок, в случае которых системой выбрасывается исключение, и работа скрипта останавливается
-
ignore_silence — отменить действие оператора подавления ошибок (значок @ перед функцией, например @file(), документация).
-
assertion_throws_exception — выбрасывают ли утверждения (assert()) исключения.
-
assertion_error_type — тип ошибки для неверного утверждения (по умолчанию — 256 E_USER_ERROR)
-
debug — если выставить debug = true, информация об ошибке будет выведена пользователю в браузер. Если debug = false, при возникновении ошибки будет выведено стандартное сообщение от Битрикс, кроме ошибок E_ERROR | E_PARSE
if ($this->debug)
{
error_reporting($this->handledErrorsTypes);
@ini_set('display_errors', 'On');
@ini_set('display_startup_errors', 'On');
@ini_set('report_memleaks', 'On');
}
else
{
error_reporting(E_ERROR | E_PARSE);
}
При отключении режима отладки, также сбрасываются настройки для assert()
if ($this->debug)
{
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_BAIL, 0);
assert_options(ASSERT_QUIET_EVAL, 0);
assert_options(ASSERT_CALLBACK, array($this, "handleAssertion"));
}
else
{
assert_options(ASSERT_ACTIVE, 0);
}
- log — секция с указанием логгера. Если пусто, то запись ошибок происходить не будет. В данном случае по умолчанию всю работу на себя возьмет объект класса BitrixMainDiagFileExceptionHandlerLog.
- settings — секция с настройками обработчика ошибок. Можно задавать произвольные параметры. Они все передадутся массивом в метод initialize() обработчика.
- file — относительный путь к файлу логов от корневой директории сайта (BitrixMainApplication::getDocumentRoot().’/’.$file).
- log_size — максимальный размер файла логов в байтах.
Можно использовать собственный обработчик ошибок для записи логов. Для этого в секции log нужно указать:
'class_name' => 'MyLog',
'extension' => 'MyLogExt',
'required_file' => 'modules/mylog.module/mylog.php'
- class_name — имя класса-обработчика. Класс должен наследоваться от BitrixMainDiagExceptionHandlerLog. Метод write в 16 версии отличается от реализации в 15 версии, эта несовместимость может сломать сайт, будьте внимательны.
- extension — подключаемое расширение, содержащее класс-обработчик
- required_file — файл, содержащий нужный класс.
Модули АХТУНГ 500 И АХТУНГ 500 ПРО
Модули Ахтунг 500 и Ахтунг 500 ПРО предназачены для мгновенного оповещения об ошибках по e-mail и через браузер, когда администратор находится на сайте.
Мониторинг ошибок происходит не только через обработчик ошибок Битрикса, но и через чтение файлов логов сервера, есть поиск.
Перейти к подробному описанию Ахтунг 500 ПРО
Объяснять, что такое логи — нет необходимости. Когда есть логи, то проще разобраться с возникшими проблемами и выяснить, почему они начались. Основные моменты в использовании логов.
Логи не должны занимать всё свободное пространство на диске, т.е. в логи нужно помещать только нужную информацию, а не всё подряд. Устаревшие логи должны удаляться. Для удаления устаревших логов лучше всего настроить задание на cron.
Логи должны быть удобными для изучения — логи с ошибками и логи с диагностическими данными должны помещаться в разные файлы. Желательно разделять логи на временные интервалы — например, ежедневные логи (наиболее распространенный вариант, или, например, по месяцам, или неделям).
Все логи нужно держать в одной папке, чтобы было удобней их изучать (/logs/, /_logs/, /local/logs/ и т.п. ). В целях защиты следует закрыть доступ к папке с логами по http — настраивается в .htacces,
deny from all
и/или добавить к названию файла уникальный идентификатор.
Папку для логов надо предварительно создать и убедиться, что битрикс (веб-сервер) имеет права на запись в нее.
В системе 1С-Битрикс существует 2 вида логов:
ADDMESSAGE2LOG(…)
Это функция из старого ядра. Многие модули пишут через нее отладочную информацию.
Пример настройки места хранения логов, выводимых данной функцией, выглядит так (папка logs/bx должна быть создана):
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"] . "/logs/bx/" . date("Y-m-d") . ".log");
Прописать данную настройку можно, например, в dbconn.php.
СЕКЦИЯ EXCEPTION_HANDLING В ФАЙЛЕ .SETTINGS.PHP
Это уже функционал нового ядра D7.
Битрикс через данный функционал пишет информацию обо всех ошибках и исключениях. Что именно пишется — зависит от настроек.
Пример настройки логов с разделением по дате:
'exception_handling' => array (
'value' => array (
'debug' => false, // disables error output to screen
// ошибки для вывода в лог
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_WARNING,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_COMPILE_WARNING,
'ignore_silence' => true,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
'file' => "logs/bx_error/" . date("Y-m-d") . ".log",
'log_size' => 1000000, // ~ 1Mb per file
),
),
),
'readonly' => true,
),
ФУНКЦИИ ОТЛАДКИ В ЯДРЕ D7
На замену функции AddMessage2Log в ядре D7 пришли новые функции:
use BitrixMainDiagDebug; Debug::dumpToFile($_SERVER); // для случаев, когда нужен var_dump Debug::writeToFile($_SERVER); // когда нужен print_r
Также в ядре D7 появились методы, для измерения времени. В старом ядре аналогов не было.
use BitrixMainDiagDebug;
Debug::startTimeLabel("foo");
foo();
Debug::endTimeLabel("foo");
Debug::startTimeLabel("bar");
bar();
Debug::endTimeLabel("bar");
print_r(Debug::getTimeLabels());
Таким образом, правильная расстановка функций логирования и временных меток позволит выявить уязвимости в коде и уменьшить время выдачи сайта от сервера пользователю.
Главная
G-Web IT
Адрес:
Летная улица, 30, корпус 1
141021
Мытищи,
Электронная почта: info@goldwebit.net
По будням с 10:00 до 20
Битрикс файл bitrix/.settings.php
Секция exception_handling
Отвечает за обработку ошибок.
'exception_handling' => array (
'value' => array (
'debug' => false,
'handled_errors_types' => E_ALL & ~E_NOTICE &
~E_STRICT & ~E_USER_NOTICE,
'exception_errors_types' => E_ALL & ~E_NOTICE &
~E_WARNING & ~E_STRICT & ~E_USER_WARNING &
~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
),
| Параметр | Значение |
| debug | Ключ отвечает за то, будет ли выведена ошибка на страницу в браузере. Выводить ошибки рекомендуется только на время разработки или отладки. Иначе потенциально может быть разглашение информации. |
| handled_errors_types | В ключе задаются типы ошибок, которые система отлавливает (не игнорирует). |
| exception_errors_types | В ключе задаются типы ошибок, при которых система выбрасывает исключение. |
| ignore_silence | Ключ отменяет действие оператора управления ошибками (@). |
| log | В ключе задаются параметры логирования ошибок. Если ключа нет — логирования не будет. Если задать как показано в примере: 'log' => array ( 'settings' => array ( 'file' => 'bitrix/modules/error.log', 'log_size' => 1000000, ), ), то логироваться будет в файл с ограничением его размера. Если в корне сайта лежит файл error.php и выключен вывод ошибок на экран, то этот файл будет подключен в случае возникновения необработанного исключения. Если задать в общем случае, то можно логгировать куда угодно: 'log' => array( 'class_name' => 'MyLog', 'extension' => 'MyLogExt', 'required_file' => 'modules/mylog.module/mylog.php' 'settings' => array( ), ), |
| assertion_throws_exception |
Включение поддержки команды assert.
|
| assertion_error_type |
В ключе задаются типы ошибок, для которых не верный assert выбрасывает исключение.
|
В handled_errors_types, exception_errors_types, assertion_error_type необходимо передать тип ошибки. Тип ошибки представляет из себя числовой код. Но коды знать и помнить не нужно. Например, параметр exception_errors_types. Что означает данная запись: E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING?
Возврат к списку

