FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
sentry-php/src/Stacktrace.php at source-frame-cache · getsentry/sentry-php · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
getsentry
/
sentry-php
Public
Uh oh!
There was an error while loading.
Please reload this page
.
Notifications
You must be signed in to change notification settings
Fork
475
Star
1.9k
Code
Issues
20
Pull requests
11
Discussions
Actions
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Discussions
Actions
Security and quality
Insights
Expand file tree
Breadcrumbs
sentry-php
/
src
/
Stacktrace.php
Copy path
More file actions
More file actions
Latest commit
History
History
History
100 lines (85 loc) · 2.44 KB
Breadcrumbs
sentry-php
/
src
/
Stacktrace.php
Copy path
File metadata and controls
100 lines (85 loc) · 2.44 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?php
declare
(strict_types=
1
);
namespace
Sentry
;
/**
* This class contains all the information about an error stacktrace.
*
* @author Stefano Arlandini <sarlandini@alice.it>
*/
final
class
Stacktrace
{
/**
* @var Frame[] The frames that compose the stacktrace
*/
private
$
frames
= [];
/**
* Constructor.
*
* @param Frame[] $frames A non-empty list of stack frames. The list must be
* ordered from caller to callee. The last frame is the
* one creating the exception
*/
public
function
__construct
(
array
$
frames
)
{
if
(
empty
(
$
frames
)) {
throw
new
\
InvalidArgumentException
(
'
Expected a non empty list of frames.
'
);
}
foreach
(
$
frames
as
$
frame
) {
if
(!
$
frame
instanceof
Frame) {
throw
new
\
UnexpectedValueException
(
\sprintf
(
'
Expected an instance of the "%s" class. Got: "%s".
'
, Frame::class,
get_debug_type
(
$
frame
)));
}
}
$
this
->
frames
=
$
frames
;
}
/**
* Gets the stacktrace frames.
*
* @return Frame[]
*/
public
function
getFrames
():
array
{
return
$
this
->
frames
;
}
/**
* Gets the frame at the given index.
*
* @param int $index The index from which the frame should be get
*
* @throws \OutOfBoundsException
*/
public
function
getFrame
(
int
$
index
):
Frame
{
if
(
$
index
<
0
||
$
index
>=
\count
(
$
this
->
frames
)) {
throw
new
\
OutOfBoundsException
();
}
return
$
this
->
frames
[
$
index
];
}
/**
* Adds a new frame to the stacktrace.
*
* @param Frame $frame The frame
*/
public
function
addFrame
(
Frame
$
frame
):
self
{
array_unshift
(
$
this
->
frames
,
$
frame
);
return
$
this
;
}
/**
* Removes the frame at the given index from the stacktrace.
*
* @param int $index The index of the frame
*
* @throws \OutOfBoundsException If the index is out of range
*/
public
function
removeFrame
(
int
$
index
):
self
{
if
(!
isset
(
$
this
->
frames
[
$
index
])) {
throw
new
\
OutOfBoundsException
(
\sprintf
(
'
Cannot remove the frame at index %d.
'
,
$
index
));
}
if
(
\count
(
$
this
->
frames
) ===
1
) {
throw
new
\
RuntimeException
(
'
Cannot remove all frames from the stacktrace.
'
);
}
array_splice
(
$
this
->
frames
,
$
index
,
1
);
return
$
this
;
}
}
Back
|
FazBrowse Home
|
New Git URL