Какая разница между расширением и 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?

+31
18 нояб. '09 в 18:18
источник поделиться
3 ответа

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

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

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

+18
18 нояб. '09 в 18:38
источник

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

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

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

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

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

+29
09 окт. '13 в 8:51
источник

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

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

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

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

extension="/usr/local/lib/php/extensions/xdebug.so"
-4
18 нояб. '09 в 18:28
источник

Посмотрите другие вопросы по меткам или Задайте вопрос