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
should_observeis called for each error to filter by type- If
true,on_erroris 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§
Sourcefn should_observe(&self, error_type: ErrorType) -> bool
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.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".