Hooks   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
wmc 7
c 0
b 0
f 0
lcom 0
cbo 2
dl 0
loc 75
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A synthesize_handlers_config() 0 16 3
A get_message_bus() 0 4 1
A get_message_handler_provider() 0 4 1
A get_message_pusher() 0 6 1
A dispatch_message() 0 4 1
1
<?php
2
3
/*
4
 * This file is part of the ICanBoogie package.
5
 *
6
 * (c) Olivier Laviale <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace ICanBoogie\Binding\MessageBus;
13
14
use ICanBoogie\Application;
15
use ICanBoogie\Binding\PrototypedBindings;
16
use ICanBoogie\MessageBus\MessageBus;
17
use ICanBoogie\MessageBus\MessageHandlerProvider;
18
use ICanBoogie\MessageBus\SimpleMessageBus;
19
use ICanBoogie\MessageBus\SimpleMessageHandlerProvider;
20
use ICanBoogie\Routing\Controller;
21
22
class Hooks
23
{
24
	/*
25
	 * Config
26
	 */
27
28
	/**
29
	 * @param array $fragments
30
	 *
31
	 * @return array
32
	 */
33
	static public function synthesize_handlers_config(array $fragments)
34
	{
35
		$handler_collection = [];
36
37
		foreach ($fragments as $fragment)
38
		{
39
			if (empty($fragment[MessageBusConfig::HANDLERS]))
40
			{
41
				continue; // @codeCoverageIgnore
42
			}
43
44
			$handler_collection[] = $fragment[MessageBusConfig::HANDLERS];
45
		}
46
47
		return array_merge(...$handler_collection);
48
	}
49
50
	/*
51
	 * Prototype
52
	 */
53
54
	/**
55
	 * @param Application $app
56
	 *
57
	 * @return MessageBus
58
	 */
59
	static public function get_message_bus(Application $app)
60
	{
61
		return new SimpleMessageBus($app->message_handler_provider, $app->message_pusher);
62
	}
63
64
	/**
65
	 * @param Application $app
66
	 *
67
	 * @return MessageHandlerProvider
68
	 */
69
	static public function get_message_handler_provider(Application $app)
70
	{
71
		return new SimpleMessageHandlerProvider($app->configs[MessageBusConfig::HANDLERS_CONFIG_NAME]);
72
	}
73
74
	/**
75
	 * @param Application $app
76
	 *
77
	 * @return null
78
	 */
79
	static public function get_message_pusher(Application $app)
0 ignored issues
show
Unused Code introduced by
The parameter $app is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
80
	{
81
		// don't know how to push messages yet
82
83
		return null;
84
	}
85
86
	/**
87
	 * @param Controller|PrototypedBindings $controller
88
	 * @param object $message
89
	 *
90
	 * @return mixed
91
	 */
92
	static public function dispatch_message(Controller $controller, $message)
93
	{
94
		return $controller->app->message_bus->dispatch($message);
95
	}
96
}
97