在PHPStorm中,通过向config / autocomplete.php添加包含属性的文件,我已经能够使用Codeigniter进行自动完成。 PhpStorm能够读取此文件,并允许我快速导航到该功能并具有自动完成功能。在autocomplete.php中,我可以@property Account_model $Account_model
,然后每当我使用$this->Account_model->xxx
时,自动填充功能都会正常工作。
使用get_instance()
时,所有这些功能都会消失。例如,在辅助类中,我必须使用$CI = & get_instance();
,然后使用$CI->Account_model->xxxx
。当以这种方式引用库时,如何使自动完成工作?
[注意:这只是一个简单的例子。我的真正用法是使用PHPUnit,但解决上面的例子也可以让PHPUnit工作。]
答案 0 :(得分:2)
要将get_instance()
重新绑定到IDE的自动完成,您需要告知它是CodeIgniter的本机控制器的实例。这是CI_Controller
:
/**
* Example MyClass Library within
* /application/libraries/
**/
class MyClass {
/**
* @var CI_Controller
**/
private $ci;
/**
* Init MyClass
**/
public function __construct()
{
$this->ci =& get_instance();
}
}
答案 1 :(得分:0)
你可以尝试在开始上课之前写一下属性吗
<?php defined('BASEPATH') OR exit('No direct script access allowed');
/**
* @property usermodel $usermodel
* @property groupmodel $groupmodel
* @property tablemodel $tablemodel
* @property ion_auth $ion_auth
* @property db_table_model $db_table_model
* @property apimodel $apimodel
* @property chartmodel $chartmodel
* @property todomodel $todomodel
* @property messagemodel $messagemodel
* @property photomodel $photomodel
* @property settingsmodel $settingsmodel
* @property backupmodel $backupmodel
*/
class Ajax extends MX_Controller
{
public $data;
public function __construct()
{