{"id":21361678,"url":"https://github.com/webpractik/webpractik.sentry","last_synced_at":"2025-05-09T00:11:09.745Z","repository":{"id":45660983,"uuid":"195410877","full_name":"webpractik/webpractik.sentry","owner":"webpractik","description":"Module for sending Bitrix PHP errors to Sentry","archived":false,"fork":false,"pushed_at":"2024-08-12T08:50:08.000Z","size":21,"stargazers_count":17,"open_issues_count":0,"forks_count":5,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-13T12:48:51.497Z","etag":null,"topics":["bitrix","sentry"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webpractik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-05T13:06:19.000Z","updated_at":"2024-11-08T11:42:22.000Z","dependencies_parsed_at":"2024-11-22T06:11:02.588Z","dependency_job_id":"b72df351-fdfb-478a-83ed-ba7acaef94ca","html_url":"https://github.com/webpractik/webpractik.sentry","commit_stats":{"total_commits":16,"total_committers":8,"mean_commits":2.0,"dds":0.625,"last_synced_commit":"d59a64cee66f0bb2ad5c7d8be03e09665f94360d"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webpractik%2Fwebpractik.sentry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webpractik%2Fwebpractik.sentry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webpractik%2Fwebpractik.sentry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webpractik%2Fwebpractik.sentry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webpractik","download_url":"https://codeload.github.com/webpractik/webpractik.sentry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253166521,"owners_count":21864482,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitrix","sentry"],"created_at":"2024-11-22T06:10:54.816Z","updated_at":"2025-05-09T00:11:09.720Z","avatar_url":"https://github.com/webpractik.png","language":"PHP","readme":"# webpractik.sentry\n\n## Описание\n\nМодуль для отправки PHP ошибок Bitrix в Sentry  \nКласс модуля отнаследован от Bitrix\\Main\\Diag\\FileExceptionHandlerLog\n\n## Требования\n\n- Composer\n- Версия PHP \u003e= 7.2\n\n## Установка\n\nУстановка пакета\n```bash\ncomposer require webpractik/sentry\n```\n\n## Настройка\n\n### Подключение composer autoload\n\nВ файле `init.php` требуется подключить composer autoload, если этого еще не сделано\n\n```php\nrequire_once($_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php');\n```\n\n### Определение переменных\n\nДля установки окружения и URL sentry в .env файле нужно определить две переменные:\n\n```dotenv\nAPP_ENV=production\nSENTRY_DSN=https://\u003ckey\u003e@sentry.io/\u003cproject\u003e\n```\n\n\u003e Чтобы при разработке на локальной версии сайта ошибки не отправлялись в Sentry, нужно в переменной APP_ENV указать значение 'local'. На production-сервер должно быть установлено 'production'\n\n### Получение переменных из .env файла\n\nВместе с пакетом зависимостью устанавливается библиотека `vlucas/phpdotenv`, посредством которой можно получить переменные из `.env` (по умолчанию) файла\n\nДля этого в `init.php` нужно прописать:\n\n```php\nif (class_exists('Dotenv\\\\Dotenv')) {\n    $env = Dotenv\\Dotenv::createImmutable($_SERVER['DOCUMENT_ROOT']);\n    // Если на проекте используется другое имя файла, его можно задать вторым параметром\n    // пример, $env = Dotenv\\Dotenv::createImmutable($_SERVER['DOCUMENT_ROOT'], '.environment');\n    try {\n        $env-\u003eload();\n    } catch (InvalidFileException | InvalidPathException $e) {\n    }\n}\n``` \n\nВ метод `createImmutable` нужно указать путь к файлу .env (или .environment)  \n\n\u003e В примере указана проверка на существование класса Dotenv, чтобы при первом деплое на production-сервер не вызвать ошибку (пока не отработает composer install)\n\n**Если у вас уже установлен Laravel**, то может возникнуть ошибка конфликта версий пакета `vlucas/phpdotenv`, проверьте что установили подходящий.  \nПодключение для старой (^3.3) версии пакета тоже отличается:\n```php\nif (class_exists('Dotenv\\\\Dotenv')) {\n    $env = Dotenv\\Dotenv::create($_SERVER['DOCUMENT_ROOT']); // изменение тут, в старой версии нет метода createImmutable\n    // Если на проекте используется другое имя файла, его можно задать вторым параметром\n    // пример, $env = Dotenv\\Dotenv::create($_SERVER['DOCUMENT_ROOT'], '.environment');\n    try {\n        $env-\u003eload();\n    } catch (InvalidFileException | InvalidPathException $e) {\n    }\n}\n``` \n\n### Настройка Bitrix\n\nЧтобы наш обработчик перехватывал ошибки, нужно его прописать в файле `bitrix/.settings.php`, в секцию  \n`[exception_handling][value][log]`\n\n```\n'class_name' =\u003e '\\\\Webpractik\\\\Sentry\\\\SentryException'\n```\n\nНапример:\n\n```\n'exception_handling' =\u003e\n    array (\n        'value' =\u003e\n            array (\n                'debug' =\u003e \u003cbool\u003e,\n                'handled_errors_types' =\u003e \u003cint\u003e,\n                'exception_errors_types' =\u003e \u003cint\u003e,\n                'ignore_silence' =\u003e \u003cbool\u003e,\n                'assertion_throws_exception' =\u003e \u003cbool\u003e,\n                'assertion_error_type' =\u003e \u003cint\u003e,\n                'log' =\u003e\n                    array (\n                        'settings' =\u003e\n                            array (\n                                'file' =\u003e '\u003cpath_to_error_log\u003e/error.log',\n                                'log_size' =\u003e \u003cint\u003e,\n                            ),\n                        'class_name' =\u003e '\\\\Webpractik\\\\Sentry\\\\SentryException',\n                    ),\n            ),\n        'readonly' =\u003e \u003cbool\u003e,\n    ),\n```\n\n## Миграция с версии 1.0\n\n1. Удалить ключи `extension` и `required_file` из файла `bitrix/.settings.php`\n2. В `class_name` изменить класс на `'\\\\Webpractik\\\\Sentry\\\\SentryException'`\n3. Деактивировать и удалить модуль в админ панели\n4. В файле `composer.json` изменить версию пакета `webpractik/sentry` на ^2.0\n5. Выполнить в консоли `composer update webpractik/sentry`\n6. Сбросить кеш загрузчика composer, если возникнут ошибки `composer dump-autoload`\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebpractik%2Fwebpractik.sentry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebpractik%2Fwebpractik.sentry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebpractik%2Fwebpractik.sentry/lists"}