diff --git a/Core/ErrorTypes.php b/Core/ErrorTypes.php new file mode 100644 index 0000000..6aee9da --- /dev/null +++ b/Core/ErrorTypes.php @@ -0,0 +1,34 @@ + E_ALL, + 'warning' => E_ALL & ~E_NOTICE & ~E_USER_NOTICE & ~E_STRICT, + 'error' => E_ALL & ~E_NOTICE & ~E_USER_NOTICE & ~E_STRICT & ~E_DEPRECATED + & ~E_USER_DEPRECATED & ~E_WARNING & ~E_USER_WARNING, + 'fatal' => E_ALL & ~E_NOTICE & ~E_USER_NOTICE & ~E_STRICT & ~E_DEPRECATED + & ~E_USER_DEPRECATED & ~E_WARNING & ~E_USER_WARNING & ~E_RECOVERABLE_ERROR & ~E_USER_ERROR, + 'none' => E_ALL & ~E_NOTICE & ~E_USER_NOTICE & ~E_STRICT & ~E_DEPRECATED + & ~E_USER_DEPRECATED & ~E_WARNING & ~E_USER_WARNING & ~E_RECOVERABLE_ERROR & ~E_USER_ERROR + & ~E_ERROR & ~E_PARSE & ~E_CORE_ERROR & ~E_CORE_WARNING & ~E_COMPILE_ERROR & ~E_COMPILE_WARNING + ]; + + public static function getTypeClasses() + { + return array_keys(self::$typeClasses); + } + + public static function getTypesByClass($typeClass) + { + if (false === self::$typeClasses[trim(strtolower($typeClass))]) { + throw oxNew( Exception( "unknown error type class $typeClass")); + } + + return self::$typeClasses[trim(strtolower($typeClass))]; + } +} diff --git a/Traits/ShopcontrolTrait.php b/Traits/ShopcontrolTrait.php index 6e01a67..1a29b28 100644 --- a/Traits/ShopcontrolTrait.php +++ b/Traits/ShopcontrolTrait.php @@ -3,6 +3,7 @@ namespace OxidProfessionalServices\Sentry\Traits; use OxidEsales\Eshop\Core\Registry; +use OxidProfessionalServices\Sentry\Core\ErrorTypes; use function Sentry\init; @@ -16,6 +17,9 @@ public function start($sClass = null, $sFunction = null, $aParams = null, $aView 'dsn' => $sentryUrl, 'environment' => Registry::getConfig()->getConfigParam('oxpsSentryEnvirnoment'), 'http_proxy' => Registry::getConfig()->getConfigParam('oxpsSentryProxy') ?: null, + 'error_types' => ErrorTypes::getTypesByClass( + Registry::getConfig()->getConfigParam('oxpsSentryPHPErrorLevel') ?: 'info' + ) ]); } diff --git a/metadata.php b/metadata.php index db3d1fa..103cff7 100644 --- a/metadata.php +++ b/metadata.php @@ -1,5 +1,7 @@ 'none', 'constraints' => 'none|emergency|alert|critical|error|warning|notice|info|debug', ], + [ + 'group' => 'main', + 'name' => 'oxpsSentryPHPErrorLevel', + 'type' => 'select', + 'value' => 'info', + 'constraints' => implode('|', ErrorTypes::getTypeClasses()) + ] ], ]; diff --git a/views/admin/de/oxpssentry_admin_de_lang.php b/views/admin/de/oxpssentry_admin_de_lang.php index fa0105e..545f0ec 100644 --- a/views/admin/de/oxpssentry_admin_de_lang.php +++ b/views/admin/de/oxpssentry_admin_de_lang.php @@ -3,23 +3,29 @@ $sLangName = 'Deutsch'; $aLang = [ - 'charset' => 'UTF-8', - 'oxpssentry' => 'Sentry Integration für OXID', + 'charset' => 'UTF-8', + 'oxpssentry' => 'Sentry Integration für OXID', // Settings - 'SHOP_MODULE_GROUP_main' => 'Allgemein', - 'SHOP_MODULE_oxpsSentryEnvirnoment' => 'Name des Environments', - 'SHOP_MODULE_oxpsSentryPhpUrl' => 'PHP-API Url', - 'SHOP_MODULE_oxpsSentryProxy' => 'Proxy', - 'SHOP_MODULE_oxpsSentryJsUrl' => 'JS-API Url', - 'SHOP_MODULE_oxpsSentryLogLevel' => 'Log-Level, die direkt an sentry gesendet werden sollen', - 'SHOP_MODULE_oxpsSentryLogLevel_none' => 'none', - 'SHOP_MODULE_oxpsSentryLogLevel_emergency' => 'emergency', - 'SHOP_MODULE_oxpsSentryLogLevel_alert' => 'alert', - 'SHOP_MODULE_oxpsSentryLogLevel_critical' => 'critical', - 'SHOP_MODULE_oxpsSentryLogLevel_error' => 'error', - 'SHOP_MODULE_oxpsSentryLogLevel_warning' => 'warning', - 'SHOP_MODULE_oxpsSentryLogLevel_notice' => 'notice', - 'SHOP_MODULE_oxpsSentryLogLevel_info' => 'info', - 'SHOP_MODULE_oxpsSentryLogLevel_debug' => 'debug', + 'SHOP_MODULE_GROUP_main' => 'Allgemein', + 'SHOP_MODULE_oxpsSentryEnvirnoment' => 'Name des Environments', + 'SHOP_MODULE_oxpsSentryPhpUrl' => 'PHP-API Url', + 'SHOP_MODULE_oxpsSentryProxy' => 'Proxy', + 'SHOP_MODULE_oxpsSentryJsUrl' => 'JS-API Url', + 'SHOP_MODULE_oxpsSentryLogLevel' => 'Log-Level, die direkt an sentry gesendet werden sollen', + 'SHOP_MODULE_oxpsSentryLogLevel_none' => 'none', + 'SHOP_MODULE_oxpsSentryLogLevel_emergency' => 'emergency', + 'SHOP_MODULE_oxpsSentryLogLevel_alert' => 'alert', + 'SHOP_MODULE_oxpsSentryLogLevel_critical' => 'critical', + 'SHOP_MODULE_oxpsSentryLogLevel_error' => 'error', + 'SHOP_MODULE_oxpsSentryLogLevel_warning' => 'warning', + 'SHOP_MODULE_oxpsSentryLogLevel_notice' => 'notice', + 'SHOP_MODULE_oxpsSentryLogLevel_info' => 'info', + 'SHOP_MODULE_oxpsSentryLogLevel_debug' => 'debug', + 'SHOP_MODULE_oxpsSentryPHPErrorLevel' => 'zu übertragende PHP Error Level', + 'SHOP_MODULE_oxpsSentryPHPErrorLevel_none' => 'keine', + 'SHOP_MODULE_oxpsSentryPHPErrorLevel_error' => 'Fehler und höher', + 'SHOP_MODULE_oxpsSentryPHPErrorLevel_warning' => 'Warnungen und höher', + 'SHOP_MODULE_oxpsSentryPHPErrorLevel_info' => 'Info und höher', + 'SHOP_MODULE_oxpsSentryPHPErrorLevel_fatal' => 'fatale Fehler und höher', ]; diff --git a/views/admin/en/oxpssentry_admin_en_lang.php b/views/admin/en/oxpssentry_admin_en_lang.php index 0017c17..b65ba55 100644 --- a/views/admin/en/oxpssentry_admin_en_lang.php +++ b/views/admin/en/oxpssentry_admin_en_lang.php @@ -3,23 +3,29 @@ $sLangName = 'English'; $aLang = [ - 'charset' => 'UTF-8', - 'oxpssentry' => 'Sentry integration for OXID', + 'charset' => 'UTF-8', + 'oxpssentry' => 'Sentry integration for OXID', // Settings - 'SHOP_MODULE_GROUP_main' => 'General', - 'SHOP_MODULE_oxpsSentryEnvirnoment' => 'Environment Name', - 'SHOP_MODULE_oxpsSentryPhpUrl' => 'PHP-API Url', - 'SHOP_MODULE_oxpsSentryProxy' => 'Proxy', - 'SHOP_MODULE_oxpsSentryJsUrl' => 'JS-API Url', - 'SHOP_MODULE_oxpsSentryLogLevel' => 'Log-Level, to send logs directly to sentry', - 'SHOP_MODULE_oxpsSentryLogLevel_none' => 'none', - 'SHOP_MODULE_oxpsSentryLogLevel_emergency' => 'emergency', - 'SHOP_MODULE_oxpsSentryLogLevel_alert' => 'alert', - 'SHOP_MODULE_oxpsSentryLogLevel_critical' => 'critical', - 'SHOP_MODULE_oxpsSentryLogLevel_error' => 'error', - 'SHOP_MODULE_oxpsSentryLogLevel_warning' => 'warning', - 'SHOP_MODULE_oxpsSentryLogLevel_notice' => 'notice', - 'SHOP_MODULE_oxpsSentryLogLevel_info' => 'info', - 'SHOP_MODULE_oxpsSentryLogLevel_debug' => 'debug', + 'SHOP_MODULE_GROUP_main' => 'General', + 'SHOP_MODULE_oxpsSentryEnvirnoment' => 'Environment Name', + 'SHOP_MODULE_oxpsSentryPhpUrl' => 'PHP-API Url', + 'SHOP_MODULE_oxpsSentryProxy' => 'Proxy', + 'SHOP_MODULE_oxpsSentryJsUrl' => 'JS-API Url', + 'SHOP_MODULE_oxpsSentryLogLevel' => 'Log-Level, to send logs directly to sentry', + 'SHOP_MODULE_oxpsSentryLogLevel_none' => 'none', + 'SHOP_MODULE_oxpsSentryLogLevel_emergency' => 'emergency', + 'SHOP_MODULE_oxpsSentryLogLevel_alert' => 'alert', + 'SHOP_MODULE_oxpsSentryLogLevel_critical' => 'critical', + 'SHOP_MODULE_oxpsSentryLogLevel_error' => 'error', + 'SHOP_MODULE_oxpsSentryLogLevel_warning' => 'warning', + 'SHOP_MODULE_oxpsSentryLogLevel_notice' => 'notice', + 'SHOP_MODULE_oxpsSentryLogLevel_info' => 'info', + 'SHOP_MODULE_oxpsSentryLogLevel_debug' => 'debug', + 'SHOP_MODULE_oxpsSentryPHPErrorLevel' => 'PHP error levels to be send', + 'SHOP_MODULE_oxpsSentryPHPErrorLevel_none' => 'none', + 'SHOP_MODULE_oxpsSentryPHPErrorLevel_error' => 'errors and above', + 'SHOP_MODULE_oxpsSentryPHPErrorLevel_warning' => 'warnings and above', + 'SHOP_MODULE_oxpsSentryPHPErrorLevel_info' => 'infos and above', + 'SHOP_MODULE_oxpsSentryPHPErrorLevel_fatal' => 'fatal errors and above', ];