ILIAS
trunk Revision v11.0_alpha-2638-g80c1d007f79
◀ ilDoc Overview
PageMetricsRepositoryImpl.php
Go to the documentation of this file.
1
<?php
2
19
declare(strict_types=1);
20
21
namespace
ILIAS\ContentPage\PageMetrics
;
22
23
use
ILIAS\ContentPage\PageMetrics\Entity\PageMetrics
;
24
use
ilDBInterface
;
25
use
ILIAS\ContentPage\PageMetrics\ValueObject\PageReadingTime
;
26
32
class
PageMetricsRepositoryImp
implements
PageMetricsRepository
33
{
34
public
function
__construct
(
private
readonly
ilDBInterface
$db
)
35
{
36
}
37
38
public
function
store
(
PageMetrics
$pageMetrics): void
39
{
40
$this->db->replace(
41
'content_page_metrics'
,
42
[
43
'content_page_id'
=> [
'integer'
, $pageMetrics->
contentPageId
()],
44
'page_id'
=> [
'integer'
, $pageMetrics->
pageId
()],
45
'lang'
=> [
'text'
, $pageMetrics->
language
()],
46
],
47
[
48
'reading_time'
=> [
'integer'
, $pageMetrics->
readingTime
()->minutes()],
49
]
50
);
51
}
52
53
public
function
delete
(
PageMetrics
$pageMetrics):
void
54
{
55
$this->db->queryF(
56
'DELETE FROM content_page_metrics WHERE content_page_id = %s AND page_id = %s AND lang = %s'
,
57
[
'integer'
,
'integer'
,
'text'
],
58
[$pageMetrics->contentPageId(), $pageMetrics->pageId(), $pageMetrics->language()]
59
);
60
}
61
65
public
function
findBy
(
int
$contentPageId,
int
$pageId,
string
$language):
PageMetrics
66
{
67
$res
= $this->db->queryF(
68
'SELECT * FROM content_page_metrics WHERE content_page_id = %s AND page_id = %s AND lang = %s'
,
69
[
'integer'
,
'integer'
,
'text'
],
70
[$contentPageId, $pageId, $language]
71
);
72
$row = $this->db->fetchAssoc(
$res
);
73
if
(is_array($row) && isset($row[
'content_page_id'
])) {
74
return
new
PageMetrics
(
75
(
int
) $row[
'content_page_id'
],
76
(
int
) $row[
'page_id'
],
77
$row[
'lang'
],
78
new
PageReadingTime
((
int
) $row[
'reading_time'
])
79
);
80
}
81
82
throw
CouldNotFindPageMetrics::by
($contentPageId, $pageId, $language);
83
}
84
}
ILIAS\ContentPage\PageMetrics\CouldNotFindPageMetrics\by
static by(int $contentPageId, int $pageId, string $language)
Definition:
CouldNotFindPageMetrics.php:32
$res
$res
Definition:
ltiservices.php:66
ILIAS\ContentPage\PageMetrics\Entity\PageMetrics\language
language()
Definition:
PageMetrics.php:45
ILIAS\ContentPage\PageMetrics\ValueObject\PageReadingTime
Definition:
PageReadingTime.php:25
ILIAS\ContentPage\PageMetrics\PageMetricsRepositoryImp\__construct
__construct(private readonly ilDBInterface $db)
Definition:
PageMetricsRepositoryImpl.php:34
ILIAS\ContentPage\PageMetrics\Entity\PageMetrics\contentPageId
contentPageId()
Definition:
PageMetrics.php:35
ILIAS\ContentPage\PageMetrics\Entity\PageMetrics\pageId
pageId()
Definition:
PageMetrics.php:40
ILIAS\ContentPage\PageMetrics\PageMetricsRepository
Definition:
PageMetricsRepository.php:30
PageMetrics
ilDBInterface
ILIAS\ContentPage\PageMetrics\PageMetricsRepositoryImp\findBy
findBy(int $contentPageId, int $pageId, string $language)
Definition:
PageMetricsRepositoryImpl.php:65
ILIAS\ContentPage\PageMetrics\PageMetricsRepositoryImp\store
store(PageMetrics $pageMetrics)
Definition:
PageMetricsRepositoryImpl.php:38
ILIAS\ContentPage\PageMetrics\PageMetricsRepositoryImp
Definition:
PageMetricsRepositoryImpl.php:32
ILIAS\ContentPage\PageMetrics\Entity\PageMetrics\readingTime
readingTime()
Definition:
PageMetrics.php:50
PageReadingTime
ILIAS\ContentPage\PageMetrics\Entity\PageMetrics
Definition:
PageMetrics.php:25
ILIAS\ContentPage\PageMetrics
ILIAS\$db
$db
Definition:
class.ilias.php:60
components
ILIAS
ContentPage
classes
PageMetrics
PageMetricsRepositoryImpl.php
Generated on Sun Aug 31 2025 23:02:39 for ILIAS by
1.8.13 (using
Doxyfile
)