承接 webpractik/sentry 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

webpractik/sentry

Composer 安装命令:

composer require webpractik/sentry

包简介

Module sending logs to sentry

README 文档

README

Описание

Модуль для отправки PHP ошибок Bitrix в Sentry
Класс модуля отнаследован от Bitrix\Main\Diag\FileExceptionHandlerLog

Требования

  • Composer
  • Версия PHP >= 7.2

Установка

Установка пакета

composer require webpractik/sentry

Настройка

Подключение composer autoload

В файле init.php требуется подключить composer autoload, если этого еще не сделано

require_once($_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php');

Определение переменных

Для установки окружения и URL sentry в .env файле нужно определить две переменные:

APP_ENV=production
SENTRY_DSN=https://<key>@sentry.io/<project>

Чтобы при разработке на локальной версии сайта ошибки не отправлялись в Sentry, нужно в переменной APP_ENV указать значение 'local'. На production-сервер должно быть установлено 'production'

Получение переменных из .env файла

Вместе с пакетом зависимостью устанавливается библиотека vlucas/phpdotenv, посредством которой можно получить переменные из .env (по умолчанию) файла

Для этого в init.php нужно прописать:

if (class_exists('Dotenv\\Dotenv')) {
    $env = Dotenv\Dotenv::createImmutable($_SERVER['DOCUMENT_ROOT']);
    // Если на проекте используется другое имя файла, его можно задать вторым параметром
    // пример, $env = Dotenv\Dotenv::createImmutable($_SERVER['DOCUMENT_ROOT'], '.environment');
    try {
        $env->load();
    } catch (InvalidFileException | InvalidPathException $e) {
    }
}

В метод createImmutable нужно указать путь к файлу .env (или .environment)

В примере указана проверка на существование класса Dotenv, чтобы при первом деплое на production-сервер не вызвать ошибку (пока не отработает composer install)

Если у вас уже установлен Laravel, то может возникнуть ошибка конфликта версий пакета vlucas/phpdotenv, проверьте что установили подходящий.
Подключение для старой (^3.3) версии пакета тоже отличается:

if (class_exists('Dotenv\\Dotenv')) {
    $env = Dotenv\Dotenv::create($_SERVER['DOCUMENT_ROOT']); // изменение тут, в старой версии нет метода createImmutable
    // Если на проекте используется другое имя файла, его можно задать вторым параметром
    // пример, $env = Dotenv\Dotenv::create($_SERVER['DOCUMENT_ROOT'], '.environment');
    try {
        $env->load();
    } catch (InvalidFileException | InvalidPathException $e) {
    }
}

Настройка Bitrix

Чтобы наш обработчик перехватывал ошибки, нужно его прописать в файле bitrix/.settings.php, в секцию
[exception_handling][value][log]

'class_name' => '\\Webpractik\\Sentry\\SentryException'

Например:

'exception_handling' =>
    array (
        'value' =>
            array (
                'debug' => <bool>,
                'handled_errors_types' => <int>,
                'exception_errors_types' => <int>,
                'ignore_silence' => <bool>,
                'assertion_throws_exception' => <bool>,
                'assertion_error_type' => <int>,
                'log' =>
                    array (
                        'settings' =>
                            array (
                                'file' => '<path_to_error_log>/error.log',
                                'log_size' => <int>,
                            ),
                        'class_name' => '\\Webpractik\\Sentry\\SentryException',
                    ),
            ),
        'readonly' => <bool>,
    ),

Миграция с версии 1.0

  1. Удалить ключи extension и required_file из файла bitrix/.settings.php
  2. В class_name изменить класс на '\\Webpractik\\Sentry\\SentryException'
  3. Деактивировать и удалить модуль в админ панели
  4. В файле composer.json изменить версию пакета webpractik/sentry на ^2.0
  5. Выполнить в консоли composer update webpractik/sentry
  6. Сбросить кеш загрузчика composer, если возникнут ошибки composer dump-autoload

统计信息

  • 总下载量: 9.27k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 20
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 20
  • Watchers: 0
  • Forks: 5
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-07-05

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固