我正在使用IntelliJ IDEA 12使用CodeIgniter框架开发PHP Web应用程序。由于CI实例化对象和方法的方式,IDEA认为它们在被调用时不存在:
如您所见,在我尝试使用的每个CodeIgniter类/方法下,我都会遇到那些令人讨厌的橙色弯曲。
这是CI_Controller
类的代码,使他们对如何创建对象有一些了解:
class CI_Controller {
private static $instance;
/**
* Constructor
*/
public function __construct()
{
self::$instance =& $this;
// Assign all the class objects that were instantiated by the
// bootstrap file (CodeIgniter.php) to local class variables
// so that CI can run as one big super object.
foreach (is_loaded() as $var => $class)
{
$this->$var =& load_class($class);
}
$this->load =& load_class('Loader', 'core');
$this->load->initialize();
log_message('debug', "Controller Class Initialized");
}
public static function &get_instance()
{
return self::$instance;
}
}
有什么方法可以使IntelliJ IDEA忽略这些错误(但不能忽略其他错误),或者让它自己查找对象?
注意:我曾经使用PHPStorm,这是在IntelliJ IDEA平台上构建的PHP IDE,它在CodeIgniter上也做同样的事情。
最佳答案
我通过遵循this guide解决了这个问题。它旨在用于PHPStorm,但也适用于IntelliJ IDEA(可能也适用于WebStorm!)。实际上,这非常简单。基本回顾:
/**
* -------------不要将此文件上传到实时服务器---------------------
*
*在phpStorm中为CodeIgniter实现代码完成
* phpStorm为所有类构造建立索引,因此,如果此文件在项目中,则将其加载。
* ------------------------------------------------- ------------------
*将以下文件放入phpStorm中的CI项目
*您可以将其放在项目根目录中,并且phpStorm会加载它。
*(如果phpStorm没有加载,请尝试关闭项目并重新打开)
*
*在系统/核心/下
*右键单击Controller.php并将“标记为纯文本”设置为
*对Model.php做同样的事情
* ------------------------------------------------- ------------------
*这样,对于此简单的代码完成层,无需编辑CI核心文件。
*
* PHP版本5
*
*许可:GPL http://www.gnu.org/copyleft/gpl.html
*
*创建的2012年1月28日下午11:06
*
* @类别
* @package CodeIgniter CI_phpStorm.php
* @作者Jeff Behnke
* @copyright 2009-11 Valid-Webs.com
* @license GPL http://www.gnu.org/copyleft/gpl.html
* @版本2012.01.28
*/
/**
* @property CI_DB_active_record $ db这是独立于平台的基本Active Record实现类。
* @属性CI_DB_forge $ dbforge数据库实用程序类
* @property CI_Benchmark $ benchmark此类可用于标记点并计算它们之间的时间差。内存消耗也可以显示。
* @property CI_Calendar $ calendar此类可创建日历
* @property CI_Cart $ cart购物车类
* @property CI_Config $ config此类包含使配置文件得以管理的功能
* @property CI_Controller $ controller此类对象是将分配给CodeIgniter中的每个库的父类(super class)。
* @property CI_Email $ email允许使用Mail,Sendmail或SMTP发送电子邮件。
* @property CI_Encrypt $ encrypt使用XOR哈希和Mcrypt提供双向 key 编码
* @property CI_Exceptions $ exceptions异常类
* @property CI_Form_validation $ form_validation表单验证类
* @属性CI_Ftp $ ftp FTP类
* @property CI_Hooks $ hooks提供了一种扩展基础系统而不会被黑客入侵的机制。
* @property CI_Image_lib $ image_lib图像处理类
* @property CI_Input $ input预处理全局输入数据以确保安全
* @property CI_Lang $ lang语言类(class)
* @property CI_Loader $ load加载 View 和文件
* @property CI_Log $ log日志记录类
* @property CI_Model $ model CodeIgniter模型类
* @property CI_Output $ output负责将最终输出发送到浏览器
* @property CI_Pagination $ pagination分页类
* @property CI_Parser $ parser解析指定模板 View 中包含的伪变量,将其替换为第二个参数中的数据
* @property CI_Profiler $ profiler此类可让您显示基准,查询和其他数据,以帮助调试和优化。
* @property CI_Router $ router解析URI并确定路由
* @property CI_Session $ session session 类
* @property CI_Sha1 $ sha1使用安全哈希算法提供160位哈希
* @property CI_Table $ table HTML表生成让您手动创建表或从数据库结果对象或数组创建表。
* @property CI_Trackback $ trackback引用发送/接收类
* @property CI_Typography $ typography打印术类
* @property CI_Unit_test $ unit_test简单测试类
* @property CI_Upload $上传文件上传类
* @property CI_URI $ uri解析URI并确定路由
* @property CI_User_agent $ user_agent标识浏览代理的平台,浏览器,机器人或移动设备
* @property CI_Validation $ validation//已死
* @property CI_Xmlrpc $ xmlrpc XML-RPC请求处理程序类
* @property CI_Xmlrpcs $ xmlrpcs XML-RPC服务器类
* @property CI_Zip $ zip Zip压缩类
* @property CI_Javascript $ javascript Javascript类
* @property CI_Jquery $ jquery jQuery类
* @property CI_Utf8 $ utf8提供对UTF-8环境的支持
* @property CI_Security $ security安全类,xss,csrf等...
*/
类CI_Controller {}
/**
* @property CI_DB_active_record $ db这是独立于平台的基本Active Record实现类。
* @属性CI_DB_forge $ dbforge数据库实用程序类
* @property CI_Benchmark $ benchmark此类可用于标记点并计算它们之间的时间差。内存消耗也可以显示。
* @property CI_Calendar $ calendar此类可创建日历
* @property CI_Cart $ cart购物车类
* @property CI_Config $ config此类包含使配置文件得以管理的功能
* @property CI_Controller $ controller此类对象是将分配给CodeIgniter中的每个库的父类(super class)。
* @property CI_Email $ email允许使用Mail,Sendmail或SMTP发送电子邮件。
* @property CI_Encrypt $ encrypt使用XOR哈希和Mcrypt提供双向 key 编码
* @property CI_Exceptions $ exceptions异常类
* @property CI_Form_validation $ form_validation表单验证类
* @属性CI_Ftp $ ftp FTP类
* @property CI_Hooks $ hooks提供了一种扩展基础系统而不会被黑客入侵的机制。
* @property CI_Image_lib $ image_lib图像处理类
* @property CI_Input $ input预处理全局输入数据以确保安全
* @property CI_Lang $ lang语言类(class)
* @property CI_Loader $ load加载 View 和文件
* @property CI_Log $ log日志记录类
* @property CI_Model $ model CodeIgniter模型类
* @property CI_Output $ output负责将最终输出发送到浏览器
* @property CI_Pagination $ pagination分页类
* @property CI_Parser $ parser解析指定模板 View 中包含的伪变量,将其替换为第二个参数中的数据
* @property CI_Profiler $ profiler此类可让您显示基准,查询和其他数据,以帮助调试和优化。
* @property CI_Router $ router解析URI并确定路由
* @property CI_Session $ session session 类
* @property CI_Sha1 $ sha1使用安全哈希算法提供160位哈希
* @property CI_Table $ table HTML表生成让您手动创建表或从数据库结果对象或数组创建表。
* @property CI_Trackback $ trackback引用发送/接收类
* @property CI_Typography $ typography打印术类
* @property CI_Unit_test $ unit_test简单测试类
* @property CI_Upload $上传文件上传类
* @property CI_URI $ uri解析URI并确定路由
* @property CI_User_agent $ user_agent标识浏览代理的平台,浏览器,机器人或移动设备
* @property CI_Validation $ validation//已死
* @property CI_Xmlrpc $ xmlrpc XML-RPC请求处理程序类
* @property CI_Xmlrpcs $ xmlrpcs XML-RPC服务器类
* @property CI_Zip $ zip Zip压缩类
* @property CI_Javascript $ javascript Javascript类
* @property CI_Jquery $ jquery jQuery类
* @property CI_Utf8 $ utf8提供对UTF-8环境的支持
* @property CI_Security $ security安全类,xss,csrf等...
*/
类CI_Model {}
2.在IntelliJ IDEA中找到
/system/core/controller.php
和/system/core/model.php
,然后右键单击->标记为纯文本。3.完成!它工作得很好,没有更多的错误错误,并且代码完成!