В чем разница между расширением и расширением zend в php.Ини?

когда я установил Xdebug через pecl Он добавил следующую строку в мой PHP.ini-файл.

extension="xdebug.so"

и все, что я раньше работал. До сегодняшнего дня.

сегодня у меня возникли проблемы с настройкой Xdebug для интерактивной отладки. Я не мог заставить ничего работать, пока я не изменил выше на

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

(Нюанс: Я думаю это то, что я работаю, но я не уверен на 100%)

это подняло вопрос в моем уме. В чем разница при загрузке расширения через extension= и zend_extension?

2 ответов


в основе языка PHP (больше похожего на интерпретатор, потому что язык - это просто спецификация) лежит программное обеспечение (интерпретатор, компилятор байт-кода) под названием "Zend Engine", разработанное Zend.

каждый модуль, который возится с этим ядром, должен быть установлен как "zend_extension".

и все же, чтобы решить вашу проблему, проигнорируйте эту попытку объяснения и обратитесь к документам расширения, которое вы настраиваете - http://www.xdebug.org/docs/install.


Zend_extentions принадлежат к расширениям, которые встроены в сам движок zend. PHP, который встроен в сам движок zend. Этот движок анализирует, интерпретирует и выполняет PHP-скрипт. Если мы изменим движок, это изменит способ работы PHP.

следующее сообщение будет описывать основное различие между расширением и zend_extension php

оба вида расширения разделяют много вещей. Разница между обоими типами в основном в крючках, которые они регистрируют в двигатель. Помните, что, несмотря на это очень редко, расширение может быть одновременно расширением PHP и расширением Zend. Xdebug-хороший пример.

найти ниже изображение для основной схемы enter image description here

для более подробной информации см. Эту ссылку