Нет ... лучшее, на что вы можете надеяться, это то, что если все ваши различные классы моделей реализуют один и тот же интерфейс или, возможно, все выходят из одного и того же абстрактного родительского класса, вы можете поместить интерфейс или имя абстрактного класса как тип возврата.
Примеры:
Если
class UserModel implements ModelInterface {}
Тогда ваша функция load_model () может
@return ModelInterface an object that implements a Model
...
Или, если
class UserModel extends ModelAbstractParent {}
Тогда ваша функция load_model () может
@return ModelAbstractParent a concrete Model object
...
У phpDocumentor просто нет другого способа расшифровать тип возвращаемого значения, который является динамическим во время выполнения, и, следовательно, у автозаполнения IDE также нет способа выяснить это.
Однако, если ваши различные классы конкретной модели правильно реализуют интерфейс верхнего уровня или расширяются от общего абстрактного родительского класса, то использование интерфейса / абстрактного типа в качестве возвращаемого типа позволит для некоторого уровня автозаполнение для работы в IDE.
РЕДАКТИРОВАТЬ: есть еще один способ документировать тип возвращаемого значения, но я все еще не думаю, что автозаполнение будет работать с его использованием - перечисление нескольких типов возврата:
@return UserModel|LoadModel|PlaneModel|TrainModel|AutomobileModel an object of one of the various model classes