InMemoryIndex is a perfect starting point for what I want.
By phptag & fzf you meant phpctags, right? If yes, it's not similar to what I mean, because you don't get context aware suggestions (only display tags for this or a parent class for example). If you've made this working with fzf, please share :)
I don't get your reference to deoplete. What I am thinking of is something like a php navigator. Like
go to definition which works with inheritance, if the current class does not implement the method under cursor. Or goes to the corresponding class/interface if you are over a property. Or something like
get implementations -> all classes which implement the current class/interface.
Maybe I am underestimating the effort, but for me it's just exposing the
InMemoryIndex with a little logic added. Hacking together a simple plugin for vim which populates an implementation quickfix list or simply opens the returned definiton location should not be too complicated. Anyway, I'll give it a shot :)
sourcesto language specific completion plugins. YCM, however, do expose GoToDefinition and GoToDeclaration API to language plugins, which makes it simple to write such functions, for you don't need to care about vim scripts like parsing server's response and pushing then into a quick fix list.