我有一个Zend框架项目下面的类:Netbeans的自动完成不工作的自定义PHP类
<?php
/**
* User's class
*
* This class should be responsible for all
*
* @author Steve Davies
* @copyright 2012
* @version SVN: $Id$
*/
class Api_Admin_Users extends Api_Core
{
/**
* Class Constructor
*
* @return void
*/
public function __construct() {
parent::__construct();
}
/**
* Get User's name
*
* This returns the user's name
*
* @return void
*/
public function new() {
$user = self::_instance()->_em->getRepository('UserManagement\Users')->find('1');
echo $user->getFullName();
}
}
然而,当我尝试使用代码提示上$user->getFullName();
,这是行不通的。
使用下面的技巧从here,它的工作原理:
/**
* Get User's name
*
* This returns the user's name
*
* @return void
*/
public function new() {
/* @var $user \UserManagement\Users */
$user = self::_instance()->_em->getRepository('UserManagement\Users')->find('1');
echo $user->getFullName();
}
不过,我不希望有包括注释行,每次我实例化对象。当我尝试将它移到类定义 - 甚至是方法定义时,它无法工作。
任何人都可以为此提供答案?
谢谢,但我对你的回答感到困惑。是否可以通过操作Method DocBloc来让NetBeans识别User类? – Sjwdavies 2012-02-24 13:18:26
不是在这种情况下,我很害怕。您需要记录getRepository始终返回用户存储库,但显然不是这样,并且会导致其他地方出现错误的typehints。 – Mchl 2012-02-24 13:51:42
我想你会误解,$ user将等同于UserManagement \ Users对象的一个实例。上面的例子包括Doctrine2功能,但从本质上讲,$ user是用户对象的一个实例 - 不是存储库。 – Sjwdavies 2012-02-24 15:20:31