Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4096531
TestLogger.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
TestLogger.php
View Options
<?php
namespace
Psr\Log\Test
;
use
Psr\Log\AbstractLogger
;
/**
* Used for testing purposes.
*
* It records all records and gives you access to them for verification.
*
* @method bool hasEmergency($record)
* @method bool hasAlert($record)
* @method bool hasCritical($record)
* @method bool hasError($record)
* @method bool hasWarning($record)
* @method bool hasNotice($record)
* @method bool hasInfo($record)
* @method bool hasDebug($record)
*
* @method bool hasEmergencyRecords()
* @method bool hasAlertRecords()
* @method bool hasCriticalRecords()
* @method bool hasErrorRecords()
* @method bool hasWarningRecords()
* @method bool hasNoticeRecords()
* @method bool hasInfoRecords()
* @method bool hasDebugRecords()
*
* @method bool hasEmergencyThatContains($message)
* @method bool hasAlertThatContains($message)
* @method bool hasCriticalThatContains($message)
* @method bool hasErrorThatContains($message)
* @method bool hasWarningThatContains($message)
* @method bool hasNoticeThatContains($message)
* @method bool hasInfoThatContains($message)
* @method bool hasDebugThatContains($message)
*
* @method bool hasEmergencyThatMatches($message)
* @method bool hasAlertThatMatches($message)
* @method bool hasCriticalThatMatches($message)
* @method bool hasErrorThatMatches($message)
* @method bool hasWarningThatMatches($message)
* @method bool hasNoticeThatMatches($message)
* @method bool hasInfoThatMatches($message)
* @method bool hasDebugThatMatches($message)
*
* @method bool hasEmergencyThatPasses($message)
* @method bool hasAlertThatPasses($message)
* @method bool hasCriticalThatPasses($message)
* @method bool hasErrorThatPasses($message)
* @method bool hasWarningThatPasses($message)
* @method bool hasNoticeThatPasses($message)
* @method bool hasInfoThatPasses($message)
* @method bool hasDebugThatPasses($message)
*/
class
TestLogger
extends
AbstractLogger
{
/**
* @var array
*/
public
$records
=
[];
public
$recordsByLevel
=
[];
/**
* @inheritdoc
*/
public
function
log
(
$level
,
$message
,
array
$context
=
[])
{
$record
=
[
'level'
=>
$level
,
'message'
=>
$message
,
'context'
=>
$context
,
];
$this
->
recordsByLevel
[
$record
[
'level'
]][]
=
$record
;
$this
->
records
[]
=
$record
;
}
public
function
hasRecords
(
$level
)
{
return
isset
(
$this
->
recordsByLevel
[
$level
]);
}
public
function
hasRecord
(
$record
,
$level
)
{
if
(
is_string
(
$record
))
{
$record
=
[
'message'
=>
$record
];
}
return
$this
->
hasRecordThatPasses
(
function
(
$rec
)
use
(
$record
)
{
if
(
$rec
[
'message'
]
!==
$record
[
'message'
])
{
return
false
;
}
if
(
isset
(
$record
[
'context'
])
&&
$rec
[
'context'
]
!==
$record
[
'context'
])
{
return
false
;
}
return
true
;
},
$level
);
}
public
function
hasRecordThatContains
(
$message
,
$level
)
{
return
$this
->
hasRecordThatPasses
(
function
(
$rec
)
use
(
$message
)
{
return
strpos
(
$rec
[
'message'
],
$message
)
!==
false
;
},
$level
);
}
public
function
hasRecordThatMatches
(
$regex
,
$level
)
{
return
$this
->
hasRecordThatPasses
(
function
(
$rec
)
use
(
$regex
)
{
return
preg_match
(
$regex
,
$rec
[
'message'
])
>
0
;
},
$level
);
}
public
function
hasRecordThatPasses
(
callable
$predicate
,
$level
)
{
if
(!
isset
(
$this
->
recordsByLevel
[
$level
]))
{
return
false
;
}
foreach
(
$this
->
recordsByLevel
[
$level
]
as
$i
=>
$rec
)
{
if
(
call_user_func
(
$predicate
,
$rec
,
$i
))
{
return
true
;
}
}
return
false
;
}
public
function
__call
(
$method
,
$args
)
{
if
(
preg_match
(
'/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/'
,
$method
,
$matches
)
>
0
)
{
$genericMethod
=
$matches
[
1
]
.
(
'Records'
!==
$matches
[
3
]
?
'Record'
:
''
)
.
$matches
[
3
];
$level
=
strtolower
(
$matches
[
2
]);
if
(
method_exists
(
$this
,
$genericMethod
))
{
$args
[]
=
$level
;
return
call_user_func_array
([
$this
,
$genericMethod
],
$args
);
}
}
throw
new
\BadMethodCallException
(
'Call to undefined method '
.
get_class
(
$this
)
.
'::'
.
$method
.
'()'
);
}
public
function
reset
()
{
$this
->
records
=
[];
$this
->
recordsByLevel
=
[];
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Tue, Aug 18, 14:23 (3 w, 6 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
6f/4b/30f2a241b4e0371ad7d3a2161467
Default Alt Text
TestLogger.php (4 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment