Bristol SU Support Package
src
Action
ActionDispatcher.php
Go to the documentation of this file.
1
<?php
2
3
namespace
BristolSU\Support\Action
;
4
5
use
BristolSU\Support\Action\Contracts\ActionBuilder
as ActionBuilderContract;
6
use
BristolSU\Support\Action\Contracts\ActionRepository
as ActionRepositoryContract;
7
use
BristolSU\Support\Action\Contracts\TriggerableEvent
;
8
use
BristolSU\Support\Action\History\RecordsHistory
;
9
use
BristolSU\Support\ModuleInstance\ModuleInstance
;
10
14
class
ActionDispatcher
15
{
16
22
private
$builder
;
23
29
public
function
__construct
(ActionBuilderContract
$builder
)
30
{
31
$this->builder =
$builder
;
32
}
33
41
public
function
handle
(
TriggerableEvent
$event)
42
{
43
$actionInstances = app(\
BristolSU
\Support\
Action
\Contracts\ActionInstanceRepository::class)->forEvent(
44
(
int
) app(ModuleInstance::class)->
id
, get_class($event)
45
);
46
47
foreach
($actionInstances as $actionInstance) {
48
$action = $this->builder->build($actionInstance, $event->
getFields
());
49
if
($actionInstance->should_queue) {
50
dispatch($action);
51
}
else
{
52
dispatch_now($action);
53
}
54
}
55
}
56
57
}
BristolSU
BristolSU\Support\Action\ActionDispatcher
Definition:
ActionDispatcher.php:14
BristolSU\Support\Action\Contracts\TriggerableEvent\getFields
getFields()
BristolSU\Support\Action\ActionDispatcher\$builder
$builder
Definition:
ActionDispatcher.php:22
BristolSU\Support\Action\ActionDispatcher\handle
handle(TriggerableEvent $event)
Definition:
ActionDispatcher.php:41
BristolSU\Support\Action
Definition:
ActionBuilder.php:4
BristolSU\Support\Action\Contracts\ActionBuilder
Definition:
ActionBuilder.php:12
RecordsHistory
BristolSU\Support\Action\Contracts\ActionRepository
Definition:
ActionRepository.php:8
BristolSU\Support\Action\ActionDispatcher\__construct
__construct(ActionBuilderContract $builder)
Definition:
ActionDispatcher.php:29
TriggerableEvent
BristolSU\Support\Action\Contracts\TriggerableEvent
Definition:
TriggerableEvent.php:10
BristolSU\Support\Action\Contracts\Action
Definition:
Action.php:17
ModuleInstance
Generated by
1.8.13