mac form php xdebug pecl php-internals

form - xdebug phpstorm



¿Cuál es la diferencia entre Extension y zend_extension en php.ini? (2)

Cuando instalé Xdebug a través de pecl , agregué la siguiente línea a mi archivo php.ini.

extension="xdebug.so"

y todo lo que utilicé funcionó. Hasta hoy.

Hoy estaba teniendo problemas para configurar Xdebug para la depuración interactiva. No pude hacer que funcionara nada hasta que cambié lo anterior a

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

(Advertencia: creo que esto es lo que me hizo trabajar, pero no estoy 100% seguro)

Esto planteó la pregunta en mi mente. ¿Cuál es la diferencia al cargar una extensión mediante extension= vs. zend_extension ?


En el núcleo del lenguaje PHP (más parecido al intérprete, porque un lenguaje es solo una especificación) hay un software (intérprete, compilador de códigos de bytes) llamado "Zend Engine" desarrollado por Zend.

Todos los módulos que entren en problemas con este núcleo deberían instalarse como "zend_extension".

Y, sin embargo, para resolver su problema, ignore este intento de explicación y consulte los documentos de la extensión que está configurando: http://www.xdebug.org/docs/install .


Zend_extentions pertenece a las extensiones que están integradas en el motor Zend. PHP que está construido en el motor zend en sí. Este motor analiza, interpreta y ejecuta el script php. Si cambiamos el motor, cambiará la forma de trabajo de PHP.

El siguiente mensaje describirá la diferencia principal entre extensión y zend_extension de php

Ambos tipos de extensión comparten muchas cosas. La diferencia entre ambos tipos es principalmente en los ganchos que registran en el motor. Recuerde que, a pesar de que es muy poco común, una extensión puede ser tanto una extensión PHP como una extensión Zend al mismo tiempo. Xdebug es un buen ejemplo.

Encuentre la imagen de abajo para el esquema principal

Para más detalles, consulte este enlace