Netbeans动态属性自动完成

时间:2014-02-06 23:50:01

标签: php netbeans netbeans-7 phpdoc

我正在编写一个框架,我有一个部分,我将MySQL类加载到这样的数组中:

protected $db = array();
....
public function __construct(){
    $this->db   = (object)$this->db;
}
....
private function setupDatabases(){
    if(isset($this->config["databases"])){
        foreach($this->config["databases"] as $name => $data){
            $this->db->$name = $this->mysql->init($this->config);
            $this->db->$name->setConnectionParams($data);
        }
    }
}

我想在代码中添加一些phpDoc,因此自动完成将建议类中的方法列表:$this->db->localhost->

我尝试了不同的方法,但它们不起作用。有没有某种phpDoc标记我可以做到这一点?这甚至可能吗?

2 个答案:

答案 0 :(得分:0)

我认为你需要将$ db属性本身包装到一个类中。这样,$ db-> localhost成为一个类属性,您可以通过VAR标记(@var MyDbClass)为数据类型提供。

答案 1 :(得分:0)

似乎你必须在父类中设置变量以获得传递的代码完成。如果可以在不预设变量的情况下完成此操作,请回答this question

<?php
/**
 * This is a parent class.
 * 
 * @package Examples/doubledVars
 */
class parentExample 
{   
    public $cc;
    // notice^ <------------------------------------------------------SEE ME

    /**
     * A basic contructor
     */
    public function __construct() 
    { 
        echo '::PE Class initiated::';  
        $this -> c = 'we are value "c"  in the parent class'; 
    }
} 


/**
 * This is an Example of no doubling occuring due to __construct()
 * @see noDouble
 * 
 * @package Examples/codeCompletion
 */
class codeCompletion extends parentExample 
{  
    /**
     * @see noDouble::__construct()
     */
    public function __construct() 
    { 
        //empty constructor prevents doubling
    }


    public function getC() 
    { 
        return $this -> c; 
    } 
}



$parentExampleCC = new parentExample;

$parentExampleCC->cc = new codeCompletion;

echo $parentExampleCC->cc->getC();//CC working <------------SEE ME