Bristol SU Support Package
LogicAudience.php
Go to the documentation of this file.
1 <?php
2 
4 
5 
10 
16 class LogicAudience extends LogicAudienceContract
17 {
23  private $userRepository;
24 
31 
37  {
38  $this->userRepository = $userRepository;
39  $this->audienceMemberFactory = $audienceMemberFactory;
40  }
41 
50  public function audience(Logic $logic)
51  {
52  $audienceMembers = [];
53  foreach ($this->possibleAudience() as $audienceMember) {
54  $audienceMember->filterForLogic($logic);
55  if ($audienceMember->hasAudience()) {
56  $audienceMembers[] = $audienceMember;
57  }
58  }
59  return $audienceMembers;
60  }
61 
69  private function possibleAudience()
70  {
71  foreach ($this->userRepository->all() as $user) {
72  yield $this->audienceMemberFactory->fromUser($user);
73  }
74  }
75 
76 }
__construct(UserRepository $userRepository, AudienceMemberFactoryContract $audienceMemberFactory)