[wp-trac] [WordPress Trac] #49919: Explore renaming double underscore functions

WordPress Trac noreply at wordpress.org
Thu Apr 16 13:11:11 UTC 2020


#49919: Explore renaming double underscore functions
------------------------------+-----------------------------
 Reporter:  desrosj           |      Owner:  (none)
     Type:  feature request   |     Status:  new
 Priority:  normal            |  Milestone:  Awaiting Review
Component:  General           |    Version:
 Severity:  normal            |   Keywords:  2nd-opinion
  Focuses:  coding-standards  |
------------------------------+-----------------------------
 Adding the PHP Compatibility checker to Core's Travis builds in [46290]
 exposed many false positives and non-controversial fixes required for
 maximum compatibility that could easily be made. But there were also a few
 practices in Core that have the potential to be problematic in future
 versions of PHP that more detailed require discussion and planning.

 The `PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames`
 sniff re-exposes the names of Core's double underscore functions
 (`__return_*`, for example) as a potential
 [https://www.php.net/manual/en/language.oop5.magic.php future conflict
 with new magic methods] (these were previously set to be ignored by the
 `WordPress.NamingConventions.ValidFunctionName` sniff in [45580]).

   Caution: PHP reserves all function names starting with __ as magical. It
 is recommended that you do not use function names with __ in PHP unless
 you want some documented magic functionality.

 The functions are:
 - `__get_option()`
 - `__clear_multi_author_cache()`
 - `__ngettext()`
 - `__ngettext_noop()`
 - `__return_true()`
 - `__return_false()`
 - `__return_zero()`
 - `__return_emtpy_array()`
 - `__return_null()`
 - `__return_empty_string()`
 - `__checked_selected_helper()`

 Continuing the discussion from #46152 (comment below is from @jrf):

 > While I understand and agree they should be ignored for now, I do think
 we should probably open an issue about deprecating these functions/methods
 in favour of the same functions, but then with better names.
 >
 > I know this will be a pain, especially for methods like `__return_true`
 etc, but we kind of need to take that pain at some point, so why not now
 (or at least in the near foreseeable future)?

 Previously: #46152, #48966.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/49919>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list