Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F1429714
Helper.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
Helper.php
View Options
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace
Symfony\Component\Console\Helper
;
use
Symfony\Component\Console\Formatter\OutputFormatterInterface
;
use
Symfony\Component\String\UnicodeString
;
/**
* Helper is the base class for all helper classes.
*
* @author Fabien Potencier <fabien@symfony.com>
*/
abstract
class
Helper
implements
HelperInterface
{
protected
?
HelperSet
$helperSet
=
null
;
public
function
setHelperSet
(?
HelperSet
$helperSet
):
void
{
$this
->
helperSet
=
$helperSet
;
}
public
function
getHelperSet
():
?
HelperSet
{
return
$this
->
helperSet
;
}
/**
* Returns the width of a string, using mb_strwidth if it is available.
* The width is how many characters positions the string will use.
*/
public
static
function
width
(?
string
$string
):
int
{
$string
??=
''
;
if
(
preg_match
(
'//u'
,
$string
))
{
return
(
new
UnicodeString
(
$string
))->
width
(
false
);
}
if
(
false
===
$encoding
=
mb_detect_encoding
(
$string
,
null
,
true
))
{
return
\strlen
(
$string
);
}
return
mb_strwidth
(
$string
,
$encoding
);
}
/**
* Returns the length of a string, using mb_strlen if it is available.
* The length is related to how many bytes the string will use.
*/
public
static
function
length
(?
string
$string
):
int
{
$string
??=
''
;
if
(
preg_match
(
'//u'
,
$string
))
{
return
(
new
UnicodeString
(
$string
))->
length
();
}
if
(
false
===
$encoding
=
mb_detect_encoding
(
$string
,
null
,
true
))
{
return
\strlen
(
$string
);
}
return
mb_strlen
(
$string
,
$encoding
);
}
/**
* Returns the subset of a string, using mb_substr if it is available.
*/
public
static
function
substr
(?
string
$string
,
int
$from
,
?
int
$length
=
null
):
string
{
$string
??=
''
;
if
(
false
===
$encoding
=
mb_detect_encoding
(
$string
,
null
,
true
))
{
return
substr
(
$string
,
$from
,
$length
);
}
return
mb_substr
(
$string
,
$from
,
$length
,
$encoding
);
}
public
static
function
formatTime
(
int
|
float
$secs
,
int
$precision
=
1
):
string
{
$secs
=
(
int
)
floor
(
$secs
);
if
(
0
===
$secs
)
{
return
'< 1 sec'
;
}
static
$timeFormats
=
[
[
1
,
'1 sec'
,
'secs'
],
[
60
,
'1 min'
,
'mins'
],
[
3600
,
'1 hr'
,
'hrs'
],
[
86400
,
'1 day'
,
'days'
],
];
$times
=
[];
foreach
(
$timeFormats
as
$index
=>
$format
)
{
$seconds
=
isset
(
$timeFormats
[
$index
+
1
])
?
$secs
%
$timeFormats
[
$index
+
1
][
0
]
:
$secs
;
if
(
isset
(
$times
[
$index
-
$precision
]))
{
unset
(
$times
[
$index
-
$precision
]);
}
if
(
0
===
$seconds
)
{
continue
;
}
$unitCount
=
(
$seconds
/
$format
[
0
]);
$times
[
$index
]
=
1
===
$unitCount
?
$format
[
1
]
:
$unitCount
.
' '
.
$format
[
2
];
if
(
$secs
===
$seconds
)
{
break
;
}
$secs
-=
$seconds
;
}
return
implode
(
', '
,
array_reverse
(
$times
));
}
public
static
function
formatMemory
(
int
$memory
):
string
{
if
(
$memory
>=
1024
*
1024
*
1024
)
{
return
\sprintf
(
'%.1f GiB'
,
$memory
/
1024
/
1024
/
1024
);
}
if
(
$memory
>=
1024
*
1024
)
{
return
\sprintf
(
'%.1f MiB'
,
$memory
/
1024
/
1024
);
}
if
(
$memory
>=
1024
)
{
return
\sprintf
(
'%d KiB'
,
$memory
/
1024
);
}
return
\sprintf
(
'%d B'
,
$memory
);
}
public
static
function
removeDecoration
(
OutputFormatterInterface
$formatter
,
?
string
$string
):
string
{
$isDecorated
=
$formatter
->
isDecorated
();
$formatter
->
setDecorated
(
false
);
// remove <...> formatting
$string
=
$formatter
->
format
(
$string
??
''
);
// remove already formatted characters
$string
=
preg_replace
(
"/
\0
33
\[
[^m]*m/"
,
''
,
$string
??
''
);
// remove terminal hyperlinks
$string
=
preg_replace
(
'/
\\
033]8;[^;]*;[^
\\
033]*
\\
033
\\\\
/'
,
''
,
$string
??
''
);
$formatter
->
setDecorated
(
$isDecorated
);
return
$string
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, May 16, 17:56 (9 h, 6 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
d3/09/69ca739468a504b0749b6bd4a1aa
Default Alt Text
Helper.php (4 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment