Skip to main content

ErrorObserver

Trait ErrorObserver 

Source
pub trait ErrorObserver: 'static {
    // Required methods
    fn should_observe(&self, error_type: ErrorType) -> bool;
    fn on_error(&self, error: &ErrorInfo<'_>);
}
Available on crate feature observer only.
Expand description

Trait for observing PHP errors.

§Lifecycle

  1. should_observe is called for each error to filter by type
  2. If true, on_error is called with error details

§Thread Safety

Observer must be Send + Sync. Use thread-safe primitives for mutable state.

§Example

ⓘ
use ext_php_rs::prelude::*;
use std::sync::atomic::{AtomicU64, Ordering};

struct ErrorCounter {
    count: AtomicU64,
}

impl ErrorObserver for ErrorCounter {
    fn should_observe(&self, error_type: ErrorType) -> bool {
        ErrorType::Fatal.contains(error_type)
    }

    fn on_error(&self, error: &ErrorInfo) {
        self.count.fetch_add(1, Ordering::Relaxed);
    }
}

Required Methods§

Source

fn should_observe(&self, error_type: ErrorType) -> bool

Filter which error types to observe.

Called for every error. Return true to receive on_error callback. Use bitflags for efficient filtering.

Source

fn on_error(&self, error: &ErrorInfo<'_>)

Called when an observed error occurs.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§