Enabling autocompletion for dynamic return types in PhpStorm
If you're using PhpStorm you probably make heavy use of it's autocomplete features. The IDE can, for most classes, suggests all accessible functions. Unfortunately, when a function has a dynamic return type PHPStorm will leave you out in the cold. So when resolving something out of Laravel's IoC-container PhpStorm cannot help you. Here's an example with one of the repositories of Blender:
PhpStorm can't suggest functions because it doesn't know which class the make
-function will return. Let's fix that.
The DynamicReturnType plugin provides a way to dynamically specify the return type of a function. You can install it like every other PHPStorm plugin. Next you'll have to create a file called dynamicReturnTypeMeta.json
in the root of your project with this contents:
{
"methodCalls": [
{
"class": "\\Illuminate\\Contracts\\Foundation\\Application",
"method": "make",
"position": 0
}
]
}
```
This configuration will tell PHPStorm that the return type of the `make`-function of `Illuminate\Contracts\Foundation\Application` will return an instance of class specified in the first argument.
With this file in place PHPStorm can perform autocompleting:
To learn all other possibilities the plugin offers, read it's documentation on GitHub.
Update: As Nicolas Widart mentions in the comments below there's another (and maybe easier way) to get autocompletion when resolving stuff from Laravel's IoC-container. The ide-helper package can generate a meta file that, when indexed, will make PhpStorm understand which object gets returned.
What are your thoughts on "Enabling autocompletion for dynamic return types in PhpStorm"?