Php 条令2模型的codeigniter中eclipse pdt的自动完成
我正在编写一个项目,使用codeigniter 2框架和doctrine 2作为使用EclipsePDT的ORM。我想知道是否有一种方法可以让doctrine 2 Entities类(位于\application\models\Entities文件夹中的类)的自动完成功能正常工作。我只设法让它随意工作了一次,所以我知道这是可能的,现在我想知道如何让它一直正常工作,或者我做错了什么 为了清楚起见,假设我们有一个控制器:Php 条令2模型的codeigniter中eclipse pdt的自动完成,php,eclipse,codeigniter,autocomplete,doctrine-orm,Php,Eclipse,Codeigniter,Autocomplete,Doctrine Orm,我正在编写一个项目,使用codeigniter 2框架和doctrine 2作为使用EclipsePDT的ORM。我想知道是否有一种方法可以让doctrine 2 Entities类(位于\application\models\Entities文件夹中的类)的自动完成功能正常工作。我只设法让它随意工作了一次,所以我知道这是可能的,现在我想知道如何让它一直正常工作,或者我做错了什么 为了清楚起见,假设我们有一个控制器: class Main extends My_Controller {
class Main extends My_Controller {
function index() {
$casualAccount = $this->doctrine->em->find('Entities\Account' , 1);
$casualAccount-> **AUTOCOMPLETITION NOT WORKING HERE**
$this->load->view('welcome_message.php');
}
}
我们在\models\Entities
中有这个模型:
use Doctrine\ORM\Mapping as ORM;
/**
* Entities\Account
*/
class Account
{
/**
* @var integer $id
*/
private $id;
/**
* @var string $Mail
*/
private $Mail;
/**
* @var string $Password
*/
private $Password;
/**
* @var string $Type
*/
private $Type;
/**
* @var string $First_name
*/
private $First_name;
/**
* @var string $Last_name
*/
private $Last_name;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set Mail
*
* @param string $mail
* @return Account
*/
public function setMail($mail)
{
$this->Mail = $mail;
return $this;
}
/**
* Get Mail
*
* @return string
*/
public function getMail()
{
return $this->Mail;
}
/**
* Set Password
*
* @param string $password
* @return Account
*/
public function setPassword($password)
{
$this->Password = $password;
return $this;
}
/**
* Get Password
*
* @return string
*/
public function getPassword()
{
return $this->Password;
}
/**
* Set Type
*
* @param string $type
* @return Account
*/
public function setType($type)
{
$this->Type = $type;
return $this;
}
/**
* Get Type
*
* @return string
*/
public function getType()
{
return $this->Type;
}
/**
* Set First_name
*
* @param string $firstName
* @return Account
*/
public function setFirstName($firstName)
{
$this->First_name = $firstName;
return $this;
}
/**
* Get First_name
*
* @return string
*/
public function getFirstName()
{
return $this->First_name;
}
/**
* Set Last_name
*
* @param string $lastName
* @return Account
*/
public function setLastName($lastName)
{
$this->Last_name = $lastName;
return $this;
}
/**
* Get Last_name
*
* @return string
*/
public function getLastName()
{
return $this->Last_name;
}
更新。
Manix评论有点帮助。可以使用以下语法在类中声明一个变量,告诉它将属于哪个类:
class Main extends My_Controller {
/**
* @var Entities\Account
*/
var $casualAccount;
....
}
这可能会有一点帮助,但离eclipse应该能够实现的自动完成功能还有一段距离。让我猜猜我是否理解。我从未使用过EclipsePDT,但在不清楚的情况下应该在内联变量中使用注释。下面的代码有助于IDE了解var
find()
函数返回的类型,因为该函数动态生成一个实体。没有返回特定的类型
/**
* @var $casualAccount Entities\Account
*/
$casualAccount = $this->doctrine->em->find('Entities\Account' , 1);
$casualAccount-> **AUTOCOMPLETITION SHOULD WORK AT THIS POINT *
上面的注释告诉IDE,$casualAccount
是实体\帐户的类型
这就是为什么自动完成并不总是可用的原因。看一看:
$this->load->library('Foo');
$this->foo-> /* nothing to show */
自动完成在这里不起作用,因为类引用本身是动态生成的,即使您已经记录了它。您的评论有点帮助,问题已经更新