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:

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):

Leave a Comment