In the following code the "/** @var BusinessLogicUser $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 BusinessLogicUser $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 BusinessLogicUser;
public function indexAction() {
/** @var User $user */
$user = $this->getServiceLocator()->get('userBusinessLogic');
$user->setUsername('testUsername');
}
But when I put:
use BusinessLogicUser;
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.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…