Bristol SU Support Package
src
Logic
Audience
LogicAudience.php
Go to the documentation of this file.
1
<?php
2
3
namespace
BristolSU\Support\Logic\Audience
;
4
5
6
use
BristolSU\ControlDB\Contracts\Repositories\User
as
UserRepository
;
7
use
BristolSU\Support\Logic\Contracts\Audience\AudienceMemberFactory
as
AudienceMemberFactoryContract
;
8
use
BristolSU\Support\Logic\Contracts\Audience\LogicAudience
as LogicAudienceContract;
9
use
BristolSU\Support\Logic\Logic
;
10
16
class
LogicAudience
extends
LogicAudienceContract
17
{
23
private
$userRepository
;
24
30
private
$audienceMemberFactory
;
31
36
public
function
__construct
(
UserRepository
$userRepository
,
AudienceMemberFactoryContract
$audienceMemberFactory
)
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
}
User
BristolSU\Support\Logic\Audience\LogicAudience
Definition:
LogicAudience.php:16
BristolSU\Support\Logic\Audience\LogicAudience\__construct
__construct(UserRepository $userRepository, AudienceMemberFactoryContract $audienceMemberFactory)
Definition:
LogicAudience.php:36
BristolSU\Support\Logic\Audience\LogicAudience\audience
audience(Logic $logic)
Definition:
LogicAudience.php:50
AudienceMemberFactory
BristolSU\Support\Logic\Contracts\Audience\LogicAudience
Definition:
LogicAudience.php:14
BristolSU\Support\Logic\Logic
Definition:
Logic.php:16
BristolSU\Support\Logic\Audience\LogicAudience\possibleAudience
possibleAudience()
Definition:
LogicAudience.php:69
BristolSU\Support\Logic\Audience\LogicAudience\$audienceMemberFactory
$audienceMemberFactory
Definition:
LogicAudience.php:30
BristolSU\Support\Logic\Audience
Definition:
AudienceMember.php:3
BristolSU\Support\Logic\Audience\LogicAudience\$userRepository
$userRepository
Definition:
LogicAudience.php:23
Logic
Generated by
1.8.13