Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 72
Branch analysis from position: 72
2 jumps found. (Code = 44) Position 1 = 78, Position 2 = 12
Branch analysis from position: 78
2 jumps found. (Code = 43) Position 1 = 87, Position 2 = 89
Branch analysis from position: 87
2 jumps found. (Code = 43) Position 1 = 95, Position 2 = 97
Branch analysis from position: 95
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 97
Branch analysis from position: 89
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 33
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
2 jumps found. (Code = 44) Position 1 = 31, Position 2 = 16
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 72
Branch analysis from position: 72
Branch analysis from position: 16
2 jumps found. (Code = 44) Position 1 = 31, Position 2 = 16
Branch analysis from position: 31
Branch analysis from position: 16
Branch analysis from position: 33
2 jumps found. (Code = 44) Position 1 = 78, Position 2 = 12
Branch analysis from position: 78
Branch analysis from position: 12
filename: /in/kttGv
function name: (null)
number of ops: 98
compiled vars: !0 = $db, !1 = $handle, !2 = $row, !3 = $columns, !4 = $c, !5 = $columnIndex, !6 = $columnKey, !7 = $data, !8 = $cat
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
229 0 E > NEW $9 'RefactoringGuru%5CFlyweight%5CRealWorld%5CCatDataBase'
1 DO_FCALL 0
2 ASSIGN !0, $9
231 3 ECHO 'Client%3A+Let%27s+see+what+we+have+in+%22cats.csv%22.%0A'
236 4 INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CRealWorld%5Cfopen'
5 SEND_VAL_EX '%2Fin%2Fcats.csv'
6 SEND_VAL_EX 'r'
7 DO_FCALL 0 $12
8 ASSIGN !1, $12
237 9 ASSIGN !2, 0
238 10 ASSIGN !3, <array>
239 11 > JMP ->72
240 12 > IS_EQUAL !2, 0
13 > JMPZ ~16, ->33
241 14 > ASSIGN !4, 0
15 > JMP ->26
242 16 > ASSIGN !5, !4
243 17 INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CRealWorld%5Cstrtolower'
18 CHECK_FUNC_ARG
19 FETCH_DIM_FUNC_ARG $19 !7, !4
20 SEND_FUNC_ARG $19
21 DO_FCALL 0 $20
22 ASSIGN !6, $20
244 23 ASSIGN_DIM !3, !6
24 OP_DATA !5
241 25 PRE_INC !4
26 > INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CRealWorld%5Ccount'
27 SEND_VAR_EX !7
28 DO_FCALL 0 $24
29 IS_SMALLER !4, $24
30 > JMPNZ ~25, ->16
246 31 > PRE_INC !2
247 32 > JMP ->72
250 33 > INIT_METHOD_CALL !0, 'addCat'
34 CHECK_FUNC_ARG
251 35 FETCH_DIM_R ~27 !3, 'name'
36 FETCH_DIM_FUNC_ARG $28 !7, ~27
37 SEND_FUNC_ARG $28
38 CHECK_FUNC_ARG
252 39 FETCH_DIM_R ~29 !3, 'age'
40 FETCH_DIM_FUNC_ARG $30 !7, ~29
41 SEND_FUNC_ARG $30
42 CHECK_FUNC_ARG
253 43 FETCH_DIM_R ~31 !3, 'owner'
44 FETCH_DIM_FUNC_ARG $32 !7, ~31
45 SEND_FUNC_ARG $32
46 CHECK_FUNC_ARG
254 47 FETCH_DIM_R ~33 !3, 'breed'
48 FETCH_DIM_FUNC_ARG $34 !7, ~33
49 SEND_FUNC_ARG $34
50 CHECK_FUNC_ARG
255 51 FETCH_DIM_R ~35 !3, 'image'
52 FETCH_DIM_FUNC_ARG $36 !7, ~35
53 SEND_FUNC_ARG $36
54 CHECK_FUNC_ARG
256 55 FETCH_DIM_R ~37 !3, 'color'
56 FETCH_DIM_FUNC_ARG $38 !7, ~37
57 SEND_FUNC_ARG $38
58 CHECK_FUNC_ARG
257 59 FETCH_DIM_R ~39 !3, 'texture'
60 FETCH_DIM_FUNC_ARG $40 !7, ~39
61 SEND_FUNC_ARG $40
62 CHECK_FUNC_ARG
258 63 FETCH_DIM_R ~41 !3, 'fur'
64 FETCH_DIM_FUNC_ARG $42 !7, ~41
65 SEND_FUNC_ARG $42
66 CHECK_FUNC_ARG
259 67 FETCH_DIM_R ~43 !3, 'size'
68 FETCH_DIM_FUNC_ARG $44 !7, ~43
69 SEND_FUNC_ARG $44
250 70 DO_FCALL 0
261 71 PRE_INC !2
239 72 > INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CRealWorld%5Cfgetcsv'
73 SEND_VAR_EX !1
74 DO_FCALL 0 $47
75 ASSIGN ~48 !7, $47
76 TYPE_CHECK 1018 ~48
77 > JMPNZ ~49, ->12
263 78 > INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CRealWorld%5Cfclose'
79 SEND_VAR_EX !1
80 DO_FCALL 0
267 81 ECHO '%0AClient%3A+Let%27s+look+for+a+cat+named+%22Siri%22.%0A'
268 82 INIT_METHOD_CALL !0, 'findCat'
83 SEND_VAL_EX <array>
84 DO_FCALL 0 $51
85 ASSIGN !8, $51
269 86 > JMPZ !8, ->89
270 87 > INIT_METHOD_CALL !8, 'render'
88 DO_FCALL 0
273 89 > ECHO '%0AClient%3A+Let%27s+look+for+a+cat+named+%22Bob%22.%0A'
274 90 INIT_METHOD_CALL !0, 'findCat'
91 SEND_VAL_EX <array>
92 DO_FCALL 0 $54
93 ASSIGN !8, $54
275 94 > JMPZ !8, ->97
276 95 > INIT_METHOD_CALL !8, 'render'
96 DO_FCALL 0
277 97 > > RETURN 1
Class RefactoringGuru\Flyweight\RealWorld\CatVariation:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/kttGv
function name: __construct
number of ops: 19
compiled vars: !0 = $breed, !1 = $image, !2 = $color, !3 = $texture, !4 = $fur, !5 = $size
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
26 0 E > RECV !0
1 RECV !1
2 RECV !2
3 RECV !3
4 RECV !4
5 RECV !5
34 6 ASSIGN_OBJ 'breed'
7 OP_DATA !0
35 8 ASSIGN_OBJ 'image'
9 OP_DATA !1
36 10 ASSIGN_OBJ 'color'
11 OP_DATA !2
37 12 ASSIGN_OBJ 'texture'
13 OP_DATA !3
38 14 ASSIGN_OBJ 'fur'
15 OP_DATA !4
39 16 ASSIGN_OBJ 'size'
17 OP_DATA !5
40 18 > RETURN null
End of function __construct
Function renderprofile:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/kttGv
function name: renderProfile
number of ops: 36
compiled vars: !0 = $name, !1 = $age, !2 = $owner
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
67 0 E > RECV !0
1 RECV !1
2 RECV !2
69 3 ROPE_INIT 3 ~4 '%3D+'
4 ROPE_ADD 1 ~4 ~4, !0
5 ROPE_END 2 ~3 ~4, '+%3D%0A'
6 ECHO ~3
70 7 ROPE_INIT 3 ~7 'Age%3A+'
8 ROPE_ADD 1 ~7 ~7, !1
9 ROPE_END 2 ~6 ~7, '%0A'
10 ECHO ~6
71 11 ROPE_INIT 3 ~10 'Owner%3A+'
12 ROPE_ADD 1 ~10 ~10, !2
13 ROPE_END 2 ~9 ~10, '%0A'
14 ECHO ~9
72 15 ROPE_INIT 3 ~14 'Breed%3A+'
16 FETCH_OBJ_R ~12 'breed'
17 ROPE_ADD 1 ~14 ~14, ~12
18 ROPE_END 2 ~13 ~14, '%0A'
19 ECHO ~13
73 20 ROPE_INIT 3 ~18 'Image%3A+'
21 FETCH_OBJ_R ~16 'image'
22 ROPE_ADD 1 ~18 ~18, ~16
23 ROPE_END 2 ~17 ~18, '%0A'
24 ECHO ~17
74 25 ROPE_INIT 3 ~22 'Color%3A+'
26 FETCH_OBJ_R ~20 'color'
27 ROPE_ADD 1 ~22 ~22, ~20
28 ROPE_END 2 ~21 ~22, '%0A'
29 ECHO ~21
75 30 ROPE_INIT 3 ~26 'Texture%3A+'
31 FETCH_OBJ_R ~24 'texture'
32 ROPE_ADD 1 ~26 ~26, ~24
33 ROPE_END 2 ~25 ~26, '%0A'
34 ECHO ~25
76 35 > RETURN null
End of function renderprofile
End of class RefactoringGuru\Flyweight\RealWorld\CatVariation.
Class RefactoringGuru\Flyweight\RealWorld\Cat:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/kttGv
function name: __construct
number of ops: 13
compiled vars: !0 = $name, !1 = $age, !2 = $owner, !3 = $variation
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
102 0 E > RECV !0
1 RECV !1
2 RECV !2
3 RECV !3
104 4 ASSIGN_OBJ 'name'
5 OP_DATA !0
105 6 ASSIGN_OBJ 'age'
7 OP_DATA !1
106 8 ASSIGN_OBJ 'owner'
9 OP_DATA !2
107 10 ASSIGN_OBJ 'variation'
11 OP_DATA !3
108 12 > RETURN null
End of function __construct
Function matches:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 33
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 33
Branch analysis from position: 3
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 16
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 15
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 16
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 30
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 29
Branch analysis from position: 27
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
Branch analysis from position: 30
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 33
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 33
filename: /in/kttGv
function name: matches
number of ops: 37
compiled vars: !0 = $query, !1 = $value, !2 = $key
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
115 0 E > RECV !0
117 1 > FE_RESET_R $3 !0, ->33
2 > > FE_FETCH_R ~4 $3, !1, ->33
3 > ASSIGN !2, ~4
118 4 INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CRealWorld%5Cproperty_exists'
5 FETCH_THIS $6
6 SEND_VAR_EX $6
7 SEND_VAR_EX !2
8 DO_FCALL 0 $7
9 > JMPZ $7, ->16
119 10 > FETCH_OBJ_R ~8 !2
11 IS_NOT_EQUAL !1, ~8
12 > JMPZ ~9, ->15
120 13 > FE_FREE $3
14 > RETURN <false>
118 15 > > JMP ->32
122 16 > INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CRealWorld%5Cproperty_exists'
17 CHECK_FUNC_ARG
18 FETCH_OBJ_FUNC_ARG $10 'variation'
19 SEND_FUNC_ARG $10
20 SEND_VAR_EX !2
21 DO_FCALL 0 $11
22 > JMPZ $11, ->30
123 23 > FETCH_OBJ_R ~12 'variation'
24 FETCH_OBJ_R ~13 ~12, !2
25 IS_NOT_EQUAL !1, ~13
26 > JMPZ ~14, ->29
124 27 > FE_FREE $3
28 > RETURN <false>
122 29 > > JMP ->32
127 30 > FE_FREE $3
31 > RETURN <false>
117 32 > > JMP ->2
33 > FE_FREE $3
131 34 > RETURN <true>
132 35* VERIFY_RETURN_TYPE
36* > RETURN null
End of function matches
Function render:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/kttGv
function name: render
number of ops: 14
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
142 0 E > FETCH_OBJ_R ~0 'variation'
1 INIT_METHOD_CALL ~0, 'renderProfile'
2 CHECK_FUNC_ARG
3 FETCH_OBJ_FUNC_ARG $1 'name'
4 SEND_FUNC_ARG $1
5 CHECK_FUNC_ARG
6 FETCH_OBJ_FUNC_ARG $2 'age'
7 SEND_FUNC_ARG $2
8 CHECK_FUNC_ARG
9 FETCH_OBJ_FUNC_ARG $3 'owner'
10 SEND_FUNC_ARG $3
11 DO_FCALL 0
143 12 VERIFY_RETURN_TYPE
13 > RETURN null
End of function render
End of class RefactoringGuru\Flyweight\RealWorld\Cat.
Class RefactoringGuru\Flyweight\RealWorld\CatDataBase:
Function addcat:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/kttGv
function name: addCat
number of ops: 34
compiled vars: !0 = $name, !1 = $age, !2 = $owner, !3 = $breed, !4 = $image, !5 = $color, !6 = $texture, !7 = $fur, !8 = $size, !9 = $variation
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
166 0 E > RECV !0
1 RECV !1
2 RECV !2
3 RECV !3
4 RECV !4
5 RECV !5
6 RECV !6
7 RECV !7
8 RECV !8
178 9 INIT_METHOD_CALL 'getVariation'
10 SEND_VAR_EX !3
11 SEND_VAR_EX !4
12 SEND_VAR_EX !5
13 SEND_VAR_EX !6
14 SEND_VAR_EX !7
15 SEND_VAR_EX !8
16 DO_FCALL 0 $10
177 17 ASSIGN !9, $10
179 18 NEW $14 'RefactoringGuru%5CFlyweight%5CRealWorld%5CCat'
19 SEND_VAR_EX !0
20 SEND_VAR_EX !1
21 SEND_VAR_EX !2
22 SEND_VAR_EX !9
23 DO_FCALL 0
24 FETCH_OBJ_W $12 'cats'
25 ASSIGN_DIM $12
26 OP_DATA $14
180 27 ROPE_INIT 5 ~17 'CatDataBase%3A+Added+a+cat+%28'
28 ROPE_ADD 1 ~17 ~17, !0
29 ROPE_ADD 2 ~17 ~17, '%2C+'
30 ROPE_ADD 3 ~17 ~17, !3
31 ROPE_END 4 ~16 ~17, '%29.%0A'
32 ECHO ~16
181 33 > RETURN null
End of function addcat
Function getvariation:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 27
Branch analysis from position: 16
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
filename: /in/kttGv
function name: getVariation
number of ops: 33
compiled vars: !0 = $breed, !1 = $image, !2 = $color, !3 = $texture, !4 = $fur, !5 = $size, !6 = $key
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
187 0 E > RECV !0
1 RECV !1
2 RECV !2
3 RECV !3
4 RECV !4
5 RECV !5
194 6 INIT_METHOD_CALL 'getKey'
7 INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CRealWorld%5Cget_defined_vars'
8 DO_FCALL 0 $7
9 SEND_VAR_NO_REF_EX $7
10 DO_FCALL 0 $8
11 ASSIGN !6, $8
196 12 FETCH_OBJ_IS ~10 'variations'
13 ISSET_ISEMPTY_DIM_OBJ 0 ~11 ~10, !6
14 BOOL_NOT ~12 ~11
15 > JMPZ ~12, ->27
198 16 > NEW $15 'RefactoringGuru%5CFlyweight%5CRealWorld%5CCatVariation'
17 SEND_VAR_EX !0
18 SEND_VAR_EX !1
19 SEND_VAR_EX !2
20 SEND_VAR_EX !3
21 SEND_VAR_EX !4
22 SEND_VAR_EX !5
23 DO_FCALL 0
197 24 FETCH_OBJ_W $13 'variations'
25 ASSIGN_DIM $13, !6
198 26 OP_DATA $15
201 27 > FETCH_OBJ_R ~17 'variations'
28 FETCH_DIM_R ~18 ~17, !6
29 VERIFY_RETURN_TYPE ~18
30 > RETURN ~18
202 31* VERIFY_RETURN_TYPE
32* > RETURN null
End of function getvariation
Function getkey:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/kttGv
function name: getKey
number of ops: 12
compiled vars: !0 = $data
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
207 0 E > RECV !0
209 1 INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CRealWorld%5Cmd5'
2 INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CFlyweight%5CRealWorld%5Cimplode'
3 SEND_VAL_EX '_'
4 SEND_VAR_EX !0
5 DO_FCALL 0 $1
6 SEND_VAR_NO_REF_EX $1
7 DO_FCALL 0 $2
8 VERIFY_RETURN_TYPE $2
9 > RETURN $2
210 10* VERIFY_RETURN_TYPE
11* > RETURN null
End of function getkey
Function findcat:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 11
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 11
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 10
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 11
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
filename: /in/kttGv
function name: findCat
number of ops: 14
compiled vars: !0 = $query, !1 = $cat
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
215 0 E > RECV !0
217 1 FETCH_OBJ_R ~2 'cats'
2 > FE_RESET_R Generated using Vulcan Logic Dumper, using php 8.0.0