In the following code the "/** @var BusinessLogic\User $user */" is not enabling code completion. When going by mouse over User in the comment I got:
"Multiple Declarations: this version of IDE will have problems with completion member resolution and inheritance anallysis for all classes that have multiple definitions in project files (regardles of includes)"
public function indexAction() {
/** @var BusinessLogic\User $user */
$user = $this->getServiceLocator()->get('userBusinessLogic');
$user->setUsername('testUsername');
}
I think Jetbrains is already working on it: http://youtrack.jetbrains.com/issue/WI-2760 and all related Tasks.
The only way I found to enable this is:
use BusinessLogic\User;
public function indexAction() {
/** @var User $user */
$user = $this->getServiceLocator()->get('userBusinessLogic');
$user->setUsername('testUsername');
}
But when I put:
use BusinessLogic\User;
into the code I can instantiate the user by
$user = new User();
without serviceLocator; not good for other developers to work on this file afterwards.
Some ideas? Code-Completion is quite important.