1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
AnchorContainer.php
См. документацию.
1
<?php
2
3
declare(strict_types=1);
4
5
namespace
Bitrix\Im\V2\Anchor\DI
;
6
7
use
Bitrix\Im\V2\Anchor\AnchorProvider
;
8
use
Bitrix\Im\V2\Anchor\AnchorService
;
9
use
Bitrix\Im\V2\Anchor\Push\PushService
;
10
use
Bitrix\Im\V2\Anchor\ReadService
;
11
use
Bitrix\Im\V2\Message
;
12
use
Bitrix\Main\DI\ServiceLocator
;
13
use
Bitrix\Main\NotImplementedException
;
14
15
final
class
AnchorContainer
16
{
17
private
static
?
self
$instance =
null
;
18
19
public
static
function
getInstance
(): self
20
{
21
if
(self::$instance ===
null
)
22
{
23
self::$instance =
new
self
();
24
}
25
26
return
self::$instance;
27
}
28
29
public
function
getAnchorService
(
Message
$message
):
AnchorService
30
{
31
return
$this->
get
(
32
static
fn ():
AnchorService
=>
new
AnchorService
(
$message
),
33
'im.anchor.service.'
.
$message
->getId()
34
);
35
}
36
37
public
function
getReadService
():
ReadService
38
{
39
return
$this->
get
(ReadService::class,
'im.anchor.read.service'
);
40
}
41
42
public
function
getAnchorProvider
():
AnchorProvider
43
{
44
return
$this->
get
(AnchorProvider::class,
'im.anchor.provider'
);
45
}
46
47
public
function
getPushService
():
PushService
48
{
49
return
$this->
get
(PushService::class,
'im.anchor.push.service'
);
50
}
51
52
private
function
get
(
string
|callable $constructor,
string
$id,
array
$args = []): object
53
{
54
$locator = ServiceLocator::getInstance();
55
56
if
(!$locator->has($id))
57
{
58
$config
= [
59
'constructorParams'
=> $args,
60
is_callable($constructor) ?
'constructor'
:
'className'
=> $constructor,
61
];
62
63
$locator->addInstanceLazy($id,
$config
);
64
}
65
66
return
$locator->get($id);
67
}
68
69
70
private
function
__construct()
71
{
72
}
73
77
public
function
__clone
()
78
{
79
throw
new
NotImplementedException
();
80
}
81
85
public
function
__serialize
():
array
86
{
87
throw
new
NotImplementedException
();
88
}
89
}
Bitrix\Im\V2\Anchor\AnchorProvider
Определения
AnchorProvider.php:13
Bitrix\Im\V2\Anchor\AnchorService
Определения
AnchorService.php:19
Bitrix\Im\V2\Anchor\DI\AnchorContainer
Определения
AnchorContainer.php:16
Bitrix\Im\V2\Anchor\DI\AnchorContainer\getAnchorProvider
getAnchorProvider()
Определения
AnchorContainer.php:42
Bitrix\Im\V2\Anchor\DI\AnchorContainer\getAnchorService
getAnchorService(Message $message)
Определения
AnchorContainer.php:29
Bitrix\Im\V2\Anchor\DI\AnchorContainer\getReadService
getReadService()
Определения
AnchorContainer.php:37
Bitrix\Im\V2\Anchor\DI\AnchorContainer\__serialize
__serialize()
Определения
AnchorContainer.php:85
Bitrix\Im\V2\Anchor\DI\AnchorContainer\getInstance
static getInstance()
Определения
AnchorContainer.php:19
Bitrix\Im\V2\Anchor\DI\AnchorContainer\__clone
__clone()
Определения
AnchorContainer.php:77
Bitrix\Im\V2\Anchor\DI\AnchorContainer\getPushService
getPushService()
Определения
AnchorContainer.php:47
Bitrix\Im\V2\Anchor\Push\PushService
Определения
PushService.php:15
Bitrix\Im\V2\Anchor\ReadService
Определения
ReadService.php:17
Bitrix\Main\DI\ServiceLocator
Определения
servicelocator.php:19
Bitrix\Main\NotImplementedException
Определения
NotImplementedException.php:9
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
Bitrix\Im\Message
Определения
Uuid.php:3
Bitrix\Im\V2\Anchor\DI
Определения
AnchorContainer.php:5
Bitrix\Im\V2\Message
Определения
AdditionalMessagePopupItem.php:3
$message
$message
Определения
payment.php:8
$config
$config
Определения
quickway.php:69
bitrix
modules
im
lib
V2
Anchor
DI
AnchorContainer.php
Создано системой
1.14.0