proklung / bitrix-error-notifier-module
Интеграция компонента Symfony Notifier в Битрикс
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Type:bitrix-d7-module
Requires
- php: >=7.1 || ^8.0
- composer/installers: ~1
- proklung/bitrix.module.boilerplate: ^1.0
- symfony/notifier: ^5
Requires (Dev)
- icanhazstring/composer-unused: ^0.7.5
- squizlabs/php_codesniffer: ^3
- vimeo/psalm: ^4.3
README
Пример практического применения нотификатора Symfony в проектах на Битриксе.
Отправляет сообщения о фатальных ошибках на проекте в каналы согласно конфигурации корневого модуля: sms, почта, чаты (включая Телеграм).
ВАЖНО
Этот модуль зависит от установки, активации и настройки модуля proklung.notifier. Без него работать не будет (но и ругаться тоже).
Установка
composer.json основного проекта:
"extra": { "installer-paths": { "./bitrix/modules/{$name}/": ["type:bitrix-d7-module", "type:bitrix-module"], "./bitrix/components/{$name}/": ["type:bitrix-d7-component", "type:bitrix-component"], "./bitrix/templates/{$name}/": ["type:bitrix-d7-template", "type:bitrix-theme"] } }
И:
"repositories": [ { "type": "git", "url": "https://github.com/proklung/bitrix.error.notifier.module" } ]
$ composer require proklung/bitrix-error-notifier-module
Установите модуль bitrix.error.notifier
в административном интерфейсе сайта bitrix/admin/partner_modules.php
init.php
:
use Bitrix\Main\Loader; Loader::includeModule('proklung.notifier');
Использование
/bitrix/.settings.php
:
use Symfony\Component\Notifier\Notification\Notification; return [ 'exception_handling' => array( 'value' => array( 'debug' => env('DEBUG', false), 'handled_errors_types' => 4437, 'exception_errors_types' => 4437, 'ignore_silence' => false, 'assertion_throws_exception' => true, 'assertion_error_type' => 256, 'log' => array ( 'class_name' => \Proklung\Error\Notifier\ErrorHandler::class, 'required_file' => 'bitrix/modules/proklung.error.notifier/lib/ErrorHandler.php', 'settings' => array ( 'types' => [ \Bitrix\Main\Diag\ExceptionHandlerLog::UNCAUGHT_EXCEPTION, \Bitrix\Main\Diag\ExceptionHandlerLog::IGNORED_ERROR, \Bitrix\Main\Diag\ExceptionHandlerLog::FATAL, ], // Получатель почты; перебивает параметры родительского модуля 'recipient' => 'email@gmail.com', // Или какой-нибудь иной способ различения dev/prod среды // По умолчанию - dev 'env' => env('DEBUG', false) ? 'dev' : 'prod', // В каком окружении работать. По умолчанию - prod. 'allowed_env' => ['dev', 'prod'], // Уровень важности согласно channel_policy (см. документацию к модулю proklung.notifier) // По умолчанию - urgent 'importancy' => Notification::IMPORTANCE_URGENT, ), ), ), 'readonly' => false, ), ];
Нюансы
- Сообщение об ошибке рассылается всего один раз (иначе чревато флудом). Каждые сутки таблица с информацией об отправленных уведомлениях очищается посредством агента. Процесс начинается по новой.