43

当我通过 安装 Xdebug 时pecl,它将以下行添加到我的 php.ini 文件中。

extension="xdebug.so"

我用过的一切都奏效了。直到今天。

今天我在设置 Xdebug 进行交互式调试时遇到了麻烦。在将上述内容更改为之前,我无法进行任何工作

zend_extension="/usr/local/lib/php/extensions/xdebug.so"

(警告:我认为这是让我工作的原因,但我不是 100% 确定)

这在我脑海中提出了这个问题。extension=通过vs.加载扩展有什么区别zend_extension

4

2 回答 2

39

Zend_extentions 是内置于 Zend 引擎本身的扩展。引擎解析、解释和执行 PHP 脚本。更改引擎会改变 PHP 的工作方式。

包含的图表将描述扩展和 zend_extension 之间的主要区别。

两种类型的扩展共享许多功能。两种类型的区别主要在于它们注册到引擎中的钩子。尽管它非常不常见,但扩展既可以是 PHP 扩展,也可以是 Zend 扩展。Xdebug 就是一个很好的例子。

在下面的图像中找到主要架构 扩展和 zend_extensions 的比较

有关更多详细信息,请参阅此链接

于 2013-10-09T08:51:00.577 回答
23

PHP 语言的核心(更像解释器,因为语言只是一种规范)是由 Zend 开发的名为“Zend Engine”的软件(解释器,字节码编译器)。

每个与此核心混淆的模块都应安装为“zend_extension”。

然而,为了解决您的问题,请忽略这种解释尝试并查阅您正在配置的扩展的文档 - http://www.xdebug.org/docs/install

于 2009-11-18T18:38:05.013 回答