Skip to content

Conversation

@sirreal
Copy link
Collaborator

@sirreal sirreal commented Aug 21, 2025

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.

@github-actions
Copy link

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 props-bot label.

Core Committers: Use this line as a base for the props when committing in SVN:

Props jonsurrell.

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@ockham ockham merged commit 716037a into ockham:try/simplify-block-bindings-replace-html Aug 25, 2025
4 checks passed
}

private static function get_block_bindings_processor( string $block_content ) {
static $internal_processor_class = null;
Copy link

@dmsnell dmsnell Aug 25, 2025

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.

@sirreal sirreal deleted the make-processor-class-internal branch August 26, 2025 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants