правильный phpdoc @return для заводского метода

#php #phpdoc

#php #phpdoc

Вопрос:

Мне любопытно, как задокументировать следующий сценарий. Представьте группу классов:

 abstract class Personality {}
class Me extends Personality {}
class Myself extends Personality {}
class Irene extends Personality {}
  

Если я пишу фабричный метод для создания экземпляра и возврата подкласса class Personality, как мне правильно документировать @return?

 @return mixed  A "Personality" subclass object
  

или

 @return Personality  A "Personality" subclass object
  

Ответ №1:

 @return Personality A "Personality" subclass object
  

является лучшим. И IDE предоставит вам свойства автозаполнения для класса Personality.

Комментарии:

1. Нет ли способа указать, что заводской метод возвращает экземпляр класса, для которого вызывается заводской метод? (Например Irene::create() )

2. @crishoj Есть: @return static . Этого нет в документации phpDocumentor, но поддерживается PhpStorm, NetBeans и, возможно, другими редакторами.