ObservableCallbackInterface
in
An observed callback.
Callbacks that are bound to an object are automatically detached when the
ObservableCallbackInterface
and the bound object are out of scope.
This means that the ObservableCallbackInterface
can be ignored if the
observed callback should be bound to the lifetime of the object.
class Example {
function __construct(MeterProviderInterface $meterProvider) {
$meterProvider->getMeter('example')
->createObservableGauge('random')
->observe(fn(ObserverInterface $observer)
=> $observer->observe(rand(0, 10)));
}
}
Keeping a reference to the ObservableCallbackInterface
within the bound
object to gain a more fine-grained control over the life-time of the callback
does not prevent garbage collection (but might require cycle collection).
Unbound (static) callbacks must be detached manually using .
class Example {
private ObservableCallbackInterface $gauge;
function __construct(MeterProviderInterface $meterProvider) {
$this->gauge = $meterProvider->getMeter('example')
->createObservableGauge('random')
->observe(static fn(ObserverInterface $observer)
=> $observer->observe(rand(0, 10)));
}
function __destruct() {
$this->gauge->detach();
}
}
Tags
Table of Contents
Methods
- detach() : void
- Detaches the associated callback from the instrument.
Methods
detach()
Detaches the associated callback from the instrument.
public
detach() : void