Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/8t50t
function name: (null)
number of ops: 25
compiled vars: !0 = $invoker, !1 = $receiver
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
16 0 E > DECLARE_CLASS 'refactoringguru%5Ccommand%5Cconceptual%5Csimplecommand'
35 1 DECLARE_CLASS 'refactoringguru%5Ccommand%5Cconceptual%5Ccomplexcommand'
141 2 NEW $2 'RefactoringGuru%5CCommand%5CConceptual%5CInvoker'
3 DO_FCALL 0
4 ASSIGN !0, $2
142 5 INIT_METHOD_CALL !0, 'setOnStart'
6 NEW $5 'RefactoringGuru%5CCommand%5CConceptual%5CSimpleCommand'
7 SEND_VAL_EX 'Say+Hi%21'
8 DO_FCALL 0
9 SEND_VAR_NO_REF_EX $5
10 DO_FCALL 0
143 11 NEW $8 'RefactoringGuru%5CCommand%5CConceptual%5CReceiver'
12 DO_FCALL 0
13 ASSIGN !1, $8
144 14 INIT_METHOD_CALL !0, 'setOnFinish'
15 NEW $11 'RefactoringGuru%5CCommand%5CConceptual%5CComplexCommand'
16 SEND_VAR_EX !1
17 SEND_VAL_EX 'Send+email'
18 SEND_VAL_EX 'Save+report'
19 DO_FCALL 0
20 SEND_VAR_NO_REF_EX $11
21 DO_FCALL 0
146 22 INIT_METHOD_CALL !0, 'doSomethingImportant'
23 DO_FCALL 0
24 > RETURN 1
Class RefactoringGuru\Command\Conceptual\Command:
Function execute:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/8t50t
function name: execute
number of ops: 1
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
10 0 E > > RETURN null
End of function execute
End of class RefactoringGuru\Command\Conceptual\Command.
Class RefactoringGuru\Command\Conceptual\SimpleCommand:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/8t50t
function name: __construct
number of ops: 4
compiled vars: !0 = $payload
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
20 0 E > RECV !0
22 1 ASSIGN_OBJ 'payload'
2 OP_DATA !0
23 3 > RETURN null
End of function __construct
Function execute:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/8t50t
function name: execute
number of ops: 5
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
27 0 E > FETCH_OBJ_R ~0 'payload'
1 CONCAT ~1 'SimpleCommand%3A+See%2C+I+can+do+simple+things+like+printing+%28', ~0
2 CONCAT ~2 ~1, '%29%0A'
3 ECHO ~2
28 4 > RETURN null
End of function execute
End of class RefactoringGuru\Command\Conceptual\SimpleCommand.
Class RefactoringGuru\Command\Conceptual\ComplexCommand:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/8t50t
function name: __construct
number of ops: 10
compiled vars: !0 = $receiver, !1 = $a, !2 = $b
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
53 0 E > RECV !0
1 RECV !1
2 RECV !2
55 3 ASSIGN_OBJ 'receiver'
4 OP_DATA !0
56 5 ASSIGN_OBJ 'a'
6 OP_DATA !1
57 7 ASSIGN_OBJ 'b'
8 OP_DATA !2
58 9 > RETURN null
End of function __construct
Function execute:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/8t50t
function name: execute
number of ops: 14
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
65 0 E > ECHO 'ComplexCommand%3A+Complex+stuff+should+be+done+by+a+receiver+object.%0A'
66 1 FETCH_OBJ_R ~0 'receiver'
2 INIT_METHOD_CALL ~0, 'doSomething'
3 CHECK_FUNC_ARG
4 FETCH_OBJ_FUNC_ARG $1 'a'
5 SEND_FUNC_ARG $1
6 DO_FCALL 0
67 7 FETCH_OBJ_R ~3 'receiver'
8 INIT_METHOD_CALL ~3, 'doSomethingElse'
9 CHECK_FUNC_ARG
10 FETCH_OBJ_FUNC_ARG $4 'b'
11 SEND_FUNC_ARG $4
12 DO_FCALL 0
68 13 > RETURN null
End of function execute
End of class RefactoringGuru\Command\Conceptual\ComplexCommand.
Class RefactoringGuru\Command\Conceptual\Receiver:
Function dosomething:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/8t50t
function name: doSomething
number of ops: 5
compiled vars: !0 = $a
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
78 0 E > RECV !0
80 1 CONCAT ~1 'Receiver%3A+Working+on+%28', !0
2 CONCAT ~2 ~1, '.%29%0A'
3 ECHO ~2
81 4 > RETURN null
End of function dosomething
Function dosomethingelse:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/8t50t
function name: doSomethingElse
number of ops: 5
compiled vars: !0 = $b
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
83 0 E > RECV !0
85 1 CONCAT ~1 'Receiver%3A+Also+working+on+%28', !0
2 CONCAT ~2 ~1, '.%29%0A'
3 ECHO ~2
86 4 > RETURN null
End of function dosomethingelse
End of class RefactoringGuru\Command\Conceptual\Receiver.
Class RefactoringGuru\Command\Conceptual\Invoker:
Function setonstart:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/8t50t
function name: setOnStart
number of ops: 4
compiled vars: !0 = $command
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
108 0 E > RECV !0
110 1 ASSIGN_OBJ 'onStart'
2 OP_DATA !0
111 3 > RETURN null
End of function setonstart
Function setonfinish:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/8t50t
function name: setOnFinish
number of ops: 4
compiled vars: !0 = $command
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
113 0 E > RECV !0
115 1 ASSIGN_OBJ 'onFinish'
2 OP_DATA !0
116 3 > RETURN null
End of function setonfinish
Function dosomethingimportant:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 7
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 15
Branch analysis from position: 12
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 15
Branch analysis from position: 7
filename: /in/8t50t
function name: doSomethingImportant
number of ops: 16
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
124 0 E > ECHO 'Invoker%3A+Does+anybody+want+something+done+before+I+begin%3F%0A'
125 1 FETCH_OBJ_R ~0 'onStart'
2 INSTANCEOF ~0, 'RefactoringGuru%5CCommand%5CConceptual%5CCommand'
3 > JMPZ ~1, ->7
126 4 > FETCH_OBJ_R ~2 'onStart'
5 INIT_METHOD_CALL ~2, 'execute'
6 DO_FCALL 0
129 7 > ECHO 'Invoker%3A+...doing+something+really+important...%0A'
131 8 ECHO 'Invoker%3A+Does+anybody+want+something+done+after+I+finish%3F%0A'
132 9 FETCH_OBJ_R ~4 'onFinish'
10 INSTANCEOF ~4, 'RefactoringGuru%5CCommand%5CConceptual%5CCommand'
11 > JMPZ ~5, ->15
133 12 > FETCH_OBJ_R ~6 'onFinish'
13 INIT_METHOD_CALL ~6, 'execute'
14 DO_FCALL 0
135 15 > > RETURN null
End of function dosomethingimportant
End of class RefactoringGuru\Command\Conceptual\Invoker.
Generated using Vulcan Logic Dumper, using php 8.0.0