How to document magic (_call and _callStatic) methods for IDEs

Use class-level PHPDoc comment — specifically @method tag — works fine in PhpStorm:

/**
 * @method static someClass get_by_user_id(int $id) Bla-bla
 * @method static someClass get_first_by_id(int $id) 
 */
abstract class a {
...

In the above:

  • @method — PHPDoc tag
  • static — tells that this is static method
  • someClass or $this — return type
  • get_by_user_id — method name
  • (int $id) — method signature: ([[type] [parameter]<, ...>])
  • Bla-bla — some optional description

More about @method:

  • https://docs.phpdoc.org/latest/references/phpdoc/tags/method.html
  • https://github.com/phpDocumentor/phpDocumentor2/blob/develop/docs/PSR.md#711-method

P.S.
While @method static works fine in PhpStorm (tells IDE that method is static) it may not be (yet?) supported by actual phpDocumentor tool (sorry, have not used it for a while).


Alternatively: (in PhpStorm, of course) Settings | Inspections | PHP | Undefined | Undefined method --> Downgrade severity if __magic methods are present in class — it will not help with code completion for such methods in any way, but will not mark those magic methods as “undefined method” errors.


phpDocumentor’s ticket regarding using RegEx/partial names for @property/@method tags (how it can be useful for documentation and how little help it may bring to the actual IDE when dealing with code completion):

  • https://github.com/phpDocumentor/phpDocumentor2/issues/689

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)