-
Notifications
You must be signed in to change notification settings - Fork 0
Make processor class internal #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make processor class internal #7
Conversation
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the Core Committers: Use this line as a base for the props when committing in SVN: To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
716037a
into
ockham:try/simplify-block-bindings-replace-html
| } | ||
|
|
||
| private static function get_block_bindings_processor( string $block_content ) { | ||
| static $internal_processor_class = null; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I’m assuming this was done as an optimization; if so, it’s pointless because anonymous classes are static in PHP anyway. At parse time it will create a separate class with a generated name and then when instantiating it or calling a static method on it, PHP calls from the generated class instead of some dynamic variable dispatch as the code suggests.
<?php
$c = new class () {
public function speak() { return __CLASS__; }
public static function name() { return __CLASS__; }
};
echo $c->speak() . PHP_EOL;
echo $c::name() . PHP_EOL;class@anonymous/in/1H8Jo:3$0
class@anonymous/in/1H8Jo:3$0
VLD output
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/1H8Jo
function name: (null)
number of ops: 14
compiled vars: !0 = $c
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
3 0 E > DECLARE_ANON_CLASS
1 NEW $2 $1
2 DO_FCALL 0
3 ASSIGN !0, $2
8 4 INIT_METHOD_CALL !0, 'speak'
5 DO_FCALL 0 $5
6 CONCAT ~6 $5, '%0A'
7 ECHO ~6
9 8 FETCH_CLASS 0 $7 !0
9 INIT_STATIC_METHOD_CALL $7, 'name'
10 DO_FCALL 0 $8
11 CONCAT ~9 $8, '%0A'
12 ECHO ~9
10 13 > RETURN 1
Class class@anonymous:
Function speak:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/1H8Jo
function name: speak
number of ops: 2
compiled vars: none
line #* E I O op fetch ext return operands
4 0 E > > RETURN 'class%40anonymous%00%2Fin%2F1H8Jo%3A3%240'
1* > RETURN null
End of function speak
Function name:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/1H8Jo
function name: name
number of ops: 2
compiled vars: none
line #* E I O op fetch ext return operands
5 0 E > > RETURN 'class%40anonymous%00%2Fin%2F1H8Jo%3A3%240'
1* > RETURN null
End of function name
End of class class@anonymous.
so assigning it to a static variable does nothing but duplicate it.
Trac ticket:
This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.