我正在编写一个框架,我有一个部分,我将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标记我可以做到这一点?这甚至可能吗?
答案 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