1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-26 08:42:40 +01:00

Explicitly enumerate PHP magic methods

Summary: Explicitly list PHP magic methods (methods beginning with `__`) instead of assuming that //all// methods beginning with `__` are okay in terms of naming conventions. These magic methods were obtained from http://us1.php.net/manual/en/language.oop5.magic.php.

Test Plan:
```
   Warning  (XHP9) Naming Conventions
    Follow naming conventions: methods should be named using lowerCamelCase.

               1 <?php
               2
               3 class Foo {
    >>>        4     function __foo() {}
               5
               6     function _bar() {}
               7 }

   Warning  (XHP9) Naming Conventions
    Follow naming conventions: methods should be named using lowerCamelCase.

               3 class Foo {
               4     function __foo() {}
               5
    >>>        6     function _bar() {}
               7 }
```

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D10539
This commit is contained in:
Joshua Spence 2014-09-23 08:02:19 +10:00
parent 670dccee47
commit a70a00a960

View file

@ -113,9 +113,29 @@ abstract class ArcanistXHPASTLintNamingHook {
* @task util * @task util
*/ */
public static function stripPHPFunction($symbol) { public static function stripPHPFunction($symbol) {
// Allow initial "__" for magic methods like __construct; we could also switch ($symbol) {
// enumerate these explicitly. case '__assign_concat':
case '__call':
case '__callStatic':
case '__clone':
case '__concat':
case '__construct':
case '__debugInfo':
case '__destruct':
case '__get':
case '__invoke':
case '__isset':
case '__set':
case '__set_state':
case '__sleep':
case '__toString':
case '__unset':
case '__wakeup':
return preg_replace('/^__/', '', $symbol); return preg_replace('/^__/', '', $symbol);
default:
return $symbol;
}
} }
/** /**