1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
factory.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Socialnetwork\Internals\LiveFeed\Counter\State
;
4
5
use
Bitrix\Main\Config\Option
;
6
use
Bitrix\Socialnetwork\Internals\LiveFeed\Counter
;
7
use
Bitrix\Socialnetwork\Internals\LiveFeed\Counter\CounterState
;
8
9
class
Factory
10
{
11
private
static
array
$instance = [];
12
13
public
static
function
getState
(
int
$userId
):
CounterState
14
{
15
if
(
16
!self::$instance
17
|| !array_key_exists(
$userId
, self::$instance)
18
)
19
{
20
$loader =
new
Counter\Loader
(
$userId
);
21
22
if
(self::useInMemoryState())
23
{
24
self::$instance[
$userId
] =
new
InMemory
(
$userId
, $loader);
25
}
26
elseif
($loader->getTotalCounters() >= Counter::getGlobalLimit())
27
{
28
// use db directly
29
self::$instance[
$userId
] =
new
InDatabase
(
$userId
, $loader);
30
}
31
else
32
{
33
// by default
34
self::$instance[
$userId
] =
new
InMemory
(
$userId
, $loader);
35
}
36
}
37
38
return
self::$instance[
$userId
];
39
}
40
41
public
static
function
reloadState
(
int
$userId
)
42
{
43
if
(
44
self::$instance
45
&& array_key_exists(
$userId
, self::$instance)
46
)
47
{
48
$state = self::$instance[
$userId
];
49
$state->init();
50
}
51
}
52
53
private
static
function
useInMemoryState(): bool
54
{
55
return
true
;
56
57
if
(Option::get(
'socialnetwork'
,
'sonet_use_in_memory_counter_state'
,
'null'
,
'-'
) !==
'null'
)
58
{
59
return
true
;
60
}
61
62
return
false
;
63
}
64
}
$userId
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения
check_mail.php:18
Bitrix\Main\Config\Option
Определения
option.php:15
Bitrix\Main\Loader
Определения
loader.php:13
Bitrix\Socialnetwork\Internals\EventService\Event\Factory
Определения
factory.php:9
Bitrix\Socialnetwork\Internals\LiveFeed\Counter\CounterState
Определения
counterstate.php:9
Bitrix\Socialnetwork\Internals\LiveFeed\Counter\State\Factory\getState
static getState(int $userId)
Определения
factory.php:13
Bitrix\Socialnetwork\Internals\LiveFeed\Counter\State\Factory\reloadState
static reloadState(int $userId)
Определения
factory.php:41
Bitrix\Socialnetwork\Internals\LiveFeed\Counter\State\InDatabase
Определения
indatabase.php:12
Bitrix\Socialnetwork\Internals\LiveFeed\Counter\State\InMemory
Определения
inmemory.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\Socialnetwork\Internals\LiveFeed\Counter\State
Определения
factory.php:3
Bitrix\Socialnetwork\Internals\LiveFeed\Counter
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
bitrix
modules
socialnetwork
lib
internals
livefeed
counter
state
factory.php
Создано системой
1.14.0