【问题标题】:Where are things like zval defined?zval 之类的东西在哪里定义?
【发布时间】:2012-04-22 14:23:11
【问题描述】:
我正在尝试使用 Eclipse 和 CDT 开发 PHP 扩展,但扩展代码报告为充满语法错误和警告。我通过告诉CDT从PHP源代码中查找PHPinclude目录和main目录,设法摆脱了其中的一部分,解决了所有包含,但仍然存在很多问题。
具体来说,我在哪里可以找到zval、SUCCESS、FAILURE、STANDARD_MODULE_PROPERTIES、zend_module_entry、zend_function_entry 和 zend_parse_parameters 的定义?如何让 CDT 不将 <module name>、<module name>_functions 和 return_value 标记为无法解析的符号?
有没有更好的方法来使用 IDE 开发 PHP 扩展?
【问题讨论】:
标签:
c
eclipse
eclipse-cdt
php-extension
【解决方案1】:
在哪里可以找到:
typedef struct _zval_struct zval; : ./Zend/zend.h
struct _zval_struct { : ./Zend/zend.h
SUCCESS : ./Zend/zend.h
FAILURE : ./Zend/zend.h
STANDARD_MODULE_PROPERTIES : ./Zend/zend_modules.h
typedef struct _zend_module_entry zend_module_entry; : ./Zend/zend_modules.h
struct _zend_module_entry { : : ./Zend/zend_modules.h
typedef struct _zend_function_entry {
…
} zend_function_entry; : ./Zend/zend_API.h
zend_parse_parameters( : ./Zend/zend_API.c
如果你想查看这样的 PHP 源代码,我建议你将 Vim 与 cscope 结合使用。然后你所要做的就是标记zval,输入两个键,它会跳转到定义。
从一个快速的谷歌看来,Eclipse 也有一些 cscope 支持等。 Search workspace?我猜这需要您将 PHP 源代码加载到工作区。
谈到 CDT,我不知道。没用过。
编辑:
出于好奇和需要了解CDT。
现在我可以说 zend_parse_param CtrlSpace 并自动完成。或zend_parse_parameters( CtrlSpace。
或选择Search -> C/C++... 并选择即“定义”,文本“zval” -> 搜索并获取定义。
或者输入zva CtrlSpace 得到zval 等
您也可以在Project Explorer 中右键单击PHP 源代码并选择Exclude from build 等。