Skip to content

jop-software/typo3-sentry-client

Repository files navigation

TYPO3 Sentry Client

This TYPO3 extension allows you to send exceptions that occur in a TYPO3 installation to Sentry.


CI - Pipeline

Professional Support

Professional support is available, please contact info@jop-software.de for more information.

Installation

Install this TYPO3 Extension via composer.

composer require jop-software/typo3-sentry-client

Attention: Installation for non-composer installations on TYPO3 is not supported currently, because we depend on some composer packages. See Issue #4 for more information.

Configuration

Configuration is supported via TYPO3 Extension configuration and environment variables. See Settings > Extension Configuration > typo3_sentry_client in the TYPO3 backend.

You can overwrite those settings with environment variables:

###> jop-software/typo3-sentry-client
SetEnv SENTRY_ACTIVE true
SetEnv SENTRY_DSN http://publicKey@your-sentry.tld/projectId
SetEnv SENTRY_ENVIRONMENT Production
SetEnv SENTRY_TRACES_SAMPLE_RATE 1.0
SetEnv SENTRY_RELEASE 9.10.19
SetEnv SENTRY_ERROR_LEVEL 32767 # See https://www.php.net/manual/en/errorfunc.constants.php
###< jop-software/typo3-sentry-client

Add the productionExceptionHandler / debugExceptionHandler to your LocalConfiguration.php or AdditionalConfiguration.phpfile.

$GLOBALS['TYPO3_CONF_VARS']['SYS']['productionExceptionHandler'] = 'Jops\TYPO3\Sentry\Handler\ProductionExceptionHandler';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['debugExceptionHandler'] = 'Jops\TYPO3\Sentry\Handler\DebugExceptionHandler';

Multiple Environments

If you use the same .htaccess file for multiple environments like Production / Development, you can move the

SetEnv SENTRY_ENVIRONMENT Production

into the ApplicationContext section of the TYPO3 htaccess. e.G.:

# Rules to set ApplicationContext based on hostname
RewriteCond %{HTTP_HOST} ^dev\.example\.com$
RewriteRule .? - [E=TYPO3_CONTEXT:Development,E=SENTRY_ENVIRONMENT:Development]
RewriteCond %{HTTP_HOST} ^staging\.example\.com$
RewriteRule .? - [E=TYPO3_CONTEXT:Production/Staging,E=SENTRY_ENVIRONMENT:Production-Staging]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule .? - [E=TYPO3_CONTEXT:Production,E=SENTRY_ENVIRONMENT:Production]

Local Development

We use DDEV for local development. With the extension you get a complete TYPO3 DDEV setup. Type ddev start to start the container.

Headless

If you use EXT:headless, you can use the official @nuxtjs/sentry module for the frontend. There is great documentation available here.

This extension itself can be used together with EXT:headless without any known problems.

License

This project is licensed under GPL-2.0-or-later, see the LICENSE file for more information.