Подтвердить что ты не робот

Какая разница между расширением и zend_extension в php.ini?

Когда я установил Xdebug через pecl, он добавил следующую строку в файл php.ini.

extension="xdebug.so"

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

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

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

(Caveat: я think, это то, что заставило меня работать, но я не уверен на 100%)

Это подняло мой вопрос. Какая разница в загрузке расширения с помощью extension= vs. zend_extension?

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Подробнее см. ссылку

Ответ 3

zend_extension обозначает собственные расширения Zend, такие как оптимизатор, фреймворк и т.д.

расширение для всего остального (PEAR, PECL и т.д.)

Итак, я не совсем уверен, зачем менять его на Zend, так как Xdebug не является продуктом zend, и, возможно, это не помогло решить эту проблему.

Возможно, это просто поместил полный путь, который помог? Попробуйте

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