Integrates Sentry with PHPNomad's logging. A listener subscribes to ItemLogged events from phpnomad/core, forwards WARNING and above to Sentry as captured events, and records lower-severity entries as breadcrumbs so they appear as context on the next error. Severity mapping, capture rules, and DSN sourcing are all override points.
composer require phpnomad/sentry-integration- A listener that forwards
ItemLoggedevents to Sentry, with automatic severity mapping from PHPNomad log levels to Sentry severities. - A
SentryCaptureGateinterface with a default implementation that captures WARNING and above. Override it to change what becomes an event versus a breadcrumb. - A
SentryDsnProviderinterface so the host application supplies the DSN from its own configuration source (environment variables, secrets manager, config file).
phpnomad/core(provides theItemLoggedevent)phpnomad/eventandphpnomad/loaderfor listener registrationsentry/sentry^4.0- PHP 8.2 or later
Implement SentryDsnProvider with your application's DSN source, bind it in an initializer, and register SentryInitializer in your loader chain.
use PHPNomad\Loader\Interfaces\HasClassDefinitions;
use PHPNomad\Sentry\Interfaces\SentryDsnProvider;
class EnvDsnProvider implements SentryDsnProvider
{
public function getDsn(): string
{
return $_ENV['SENTRY_DSN'] ?? '';
}
}
class AppSentryInitializer implements HasClassDefinitions
{
public function getClassDefinitions(): array
{
return [EnvDsnProvider::class => SentryDsnProvider::class];
}
}Add SentryInitializer and AppSentryInitializer to your loader. From that point forward, any $logger->error() or $logger->critical() call is forwarded to Sentry without further application changes. If the DSN is empty the hub no-ops, and all Sentry calls are wrapped in try/catch so monitoring never crashes the host app.
Framework docs live at phpnomad.com. For Sentry client configuration, see the Sentry PHP SDK documentation.
MIT. See LICENSE.