2012-12-08 31 views
1

我正在使用CodeIgniter,并有我自己的类,我反弹。Convice IDE该变量是否包含对类的引用?

其中尤其是,居然还有扩展这确实一个类,会从我的模型实例化一个类。它下面开始了,

/** 
* @var CI_Controller 
*/ 
protected static $ci; 
/** 
* @var CI_DB_active_record 
*/ 
protected static $db; 
/** 
* @var Module_Model 
*/ 
protected static $model; 

protected $dateModified = null; 
protected $dateDeleted = null; 
protected $dateCreated = null; 

/** 
* @param stdClass $data 
*/ 
public function __construct(stdClass $data) { 

    self::$ci =& get_instance(); 
    self::$db = self::$ci->db; 
    self::$model = self::$ci->{self::$model}; 

    $this->{self::$model->primaryKey} = $data->{self::$model->primaryKey}; 
    $this->dateModified = (self::$model->dateModified === false ? null : $data->{self::$model->dateModified}); 
    $this->dateDeleted = (self::$model->softDelete === false ? null : $data->{self::$model->softDelete}); 
    $this->dateCreated = (self::$model->dateCreated === false ? null : $data->{self::$model->dateCreated}); 
} 

的正常工作,在类扩展这个我简单地设置的构造是:

public function __construct(stdClass $data) { 

    parent::$model = 'properties'; 

    parent::__construct($data); 
} 

这哪里是线self::$model = self::$ci->{self::$model};进来

它告诉类创建的模型是什么,以便它可以访问模型。

这一切的伟大工程,但我遇到的问题是自动完成的。

直到调用self::$model->...时,上面列出的行自动完成的作品它的工作原理基于关闭Module_Model类(一类我所有的车型延长关闭)由于此文档块:

/** 
* @var Module_Model 
*/ 

现在很明显,没有IDE会要足够聪明以了解代码点火器的工作原理,所以我不希望它能够基于我指定的模型自动完成。

但是,我希望它能够仍然基于Module_Model类自动完成。

无论如何(最好通过docblocks)说服一个IDE,self::$model仍然包含对Module_Model的引用吗?

如果它的事项我使用PHPStorm作为我的IDE它理解PHPDoc的。

回答

相关问题