OnClientConnectedHandler   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 75%

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 2
dl 0
loc 40
ccs 6
cts 8
cp 0.75
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 1
A __invoke() 0 4 1
1
<?php
2
/**
3
 * OnClientConnectedHandler.php
4
 *
5
 * @copyright      More in license.md
6
 * @license        http://www.ipublikuj.eu
7
 * @author         Adam Kadlec http://www.ipublikuj.eu
8
 * @package        iPublikuj:WebSocketSession!
9
 * @subpackage     Events
10
 * @since          1.0.0
11
 *
12
 * @date           19.02.17
13
 */
14
15
declare(strict_types = 1);
16
17
namespace IPub\WebSocketsSession\Events;
18
19
use Nette;
20
use Nette\Security as NS;
21
22
use IPub;
23
use IPub\WebSocketsSession\Session;
24
25
use IPub\WebSockets\Entities as WebSocketsEntities;
26
use IPub\WebSockets\Http as WebSocketsHttp;
27
28
/**
29
 * This component will allow access to session data from your Nette Framework website for each user connected
30
 *
31
 * @package        iPublikuj:WebSocketSession!
32
 * @subpackage     Events
33
 *
34
 * @author         Adam Kadlec <[email protected]>
35
 */
36 1
final class OnClientConnectedHandler
37
{
38
	/**
39
	 * Implement nette smart magic
40
	 */
41 1
	use Nette\SmartObject;
42
43
	/**
44
	 * @var Session\SwitchableSession
45
	 */
46
	private $session;
47
48
	/**
49
	 * @var NS\User
50
	 */
51
	private $user;
52
53
	/**
54
	 * @param Session\SwitchableSession $session
55
	 * @param NS\User $user
56
	 */
57
	public function __construct(
58
		Session\SwitchableSession $session,
59
		NS\User $user
60
	) {
61 1
		$this->session = $session;
62 1
		$this->user = $user;
63 1
	}
64
65
	/**
66
	 * @param WebSocketsEntities\Clients\IClient $client
67
	 * @param WebSocketsHttp\IRequest $httpRequest
68
	 *
69
	 * @return void
70
	 */
71
	public function __invoke(WebSocketsEntities\Clients\IClient $client, WebSocketsHttp\IRequest $httpRequest)
72
	{
73
		$client->setUser(clone $this->user);
74
	}
75
}
76