Subscriber
Consume and provide data in publish and subscribe manner:
#[Singleton]
class AuthService
{
private Subscriber $userSubscriber;
private Subscription $userSubscription;
public function usage()
{
// create
$this->userSubscriber = new Subscriber();
// publish value
$this->userSubscriber->publish($this->userSession);
// subscribe and consume
$this->userSubscription = $this->userSubscriber->subscribe(
function (UserSession $user) {
/** use it **/
}
);
// unsubscribe once its done
$this->userSubscription->unsubscribe();
}
// or use destroy hook to unsubscribe to avoid unnecessary actions in your component
public function destroy()
{
$this->userSubscription->unsubscribe();
}
//...