我使用作为服务加载的 Redis 将追随者注入实体。所以我有一个像 User 这样的实体,它有一个像 getFollowers 这样的方法。我不想将服务与实体混合,所以我制作了一个订阅 Doctrine 中的 postLoad 事件的侦听器。
问题是仅当我调用 getFollowers 方法时如何调用服务。
我的代码...
事件监听器:
public function postLoad(LifecycleEventArgs $eventArgs)
{
$redisService = get the service loaded with DIC in constructor.
if ($eventArgs->getEntity() instanceof User) {
$user = $eventArgs->getEntity();
$user->setFollowers($redisService->getFollowers($user));
}
}
用户实体:
public function setFollowers(Array $followers) {
$this->followers = $followers
}
我的问题是,在每次加载类用户时,都会调用并加载 RedisService,我只想在 $user->getFollowers 上调用该服务