ILIAS
trunk Revision v11.0_alpha-2645-g16283d3b3f8
◀ ilDoc Overview
NumberComparator.php
Go to the documentation of this file.
1
<?php
2
19
declare(strict_types=1);
20
21
namespace
ILIAS\Filesystem\Finder\Comparator
;
22
23
use
InvalidArgumentException
;
24
30
class
NumberComparator
extends
BaseComparator
31
{
32
public
function
__construct
(
string
$test)
33
{
34
if
(!preg_match(
'#^\s*(==|!=|[<>]=?)?\s*([0-9\.]+)\s*([kmg]i?)?\s*$#i'
, $test, $matches)) {
35
throw
new
InvalidArgumentException
(sprintf(
'Don\'t understand "%s" as a number test.'
, $test));
36
}
37
38
$target
= $matches[2];
39
if
(!is_numeric(
$target
)) {
40
throw
new
InvalidArgumentException
(sprintf(
'Invalid number "%s".'
,
$target
));
41
}
42
43
if
(isset($matches[3])) {
44
switch
(strtolower($matches[3])) {
45
case
'k'
:
46
$target
*= 1000;
47
break
;
48
49
case
'ki'
:
50
$target
*= 1024;
51
break
;
52
53
case
'm'
:
54
$target
*= 1_000_000;
55
break
;
56
57
case
'mi'
:
58
$target
*= 1024 * 1024;
59
break
;
60
61
case
'g'
:
62
$target
*= 1_000_000_000;
63
break
;
64
65
case
'gi'
:
66
$target
*= 1024 * 1024 * 1024;
67
break
;
68
}
69
}
70
71
$this->
setTarget
((
string
)
$target
);
72
$this->
setOperator
($matches[1] ??
'=='
);
73
}
74
}
ILIAS\Filesystem\Finder\Finder::Comparator\BaseComparator\setTarget
setTarget(string $target)
Definition:
BaseComparator.php:40
ILIAS\Filesystem\Finder\Comparator\NumberComparator\__construct
__construct(string $test)
Definition:
NumberComparator.php:32
ILIAS\Filesystem\Finder\Comparator\NumberComparator
Definition:
NumberComparator.php:30
ILIAS\Filesystem\Finder\Comparator
Definition:
BaseComparator.php:21
ILIAS\Filesystem\Finder\Finder::Comparator\BaseComparator\$target
string $target
Definition:
BaseComparator.php:32
ILIAS\Filesystem\Finder\Finder::Comparator\BaseComparator\setOperator
setOperator(string $operator)
Definition:
BaseComparator.php:50
InvalidArgumentException
components
ILIAS
Filesystem
src
Finder
Comparator
NumberComparator.php
Generated on Mon Sep 1 2025 23:03:07 for ILIAS by
1.8.13 (using
Doxyfile
)