正确的 PHPDoc 用于具有对象返回值的开关语句


Proper PHPDoc for switch statement with object return value

如果你能好心地看看我在这一行正在做的项目(函数api())。

https://github.com/wtfzdotnet/php-tmdb-api/blob/develop/lib/Tmdb/Client.php#L79

对于 IDE 来说,实际自动完成返回对象实例的方法的正确方法是什么?我现在使用它的方式从所有可能的返回对象返回所有方法。

简短的;如何确保 IDE 识别返回对象的自动完成方法由 switch 语句定义?我想知道 IDE 自动完成此操作的正确方法是什么,以及最好的 PHPDoc 策略(它确实有一个接口,但暂时为空)。

更新 1

正如第一条评论所建议的那样,我试图将"电影"作为测试的大小写调整为:

case 'movies':
    return $this->getMovieApi();

并添加

/**
 * @return Api'Movies
 */
private function getMovieApi(){
    return new Api'Movies($this);
}

但是,在尝试调用时,这不会按预期运行:

$client->api('movies')->[try_autocomplete]

但是,当我将getMovieApi的范围更改为公共并直接将其称为:

$client->getMovieApi()->[try_autocomplete]

它按预期工作,但是我真的很喜欢我的初始方法,因为这看起来更干净(至少对我来说)。如果返回值是从 switch 语句派生的,真的不可能获得正确的自动完成吗?

正确的方法是使用自己的@return创建所有这些获取方法:getConfigurationgetAuthentication等。