2009-11-18 10 views
31

Wenn ich Xdebug über pecl installiert habe, fügte es die folgende Zeile meiner php.ini-Datei hinzu.Was ist der Unterschied zwischen Extension und zend_extension in php.ini?

extension="xdebug.so" 

und alles, was ich verwendet habe funktioniert. Bis heute.

Heute hatte ich Probleme beim Einrichten von Xdebug für interaktives Debugging. Ich konnte nichts bekommen zu arbeiten, bis ich die oben

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

(Caveat: Ich denke, das ist, was mich arbeiten, aber ich bin nicht 100% sicher)

Dies erhöht die Frage in meinem Kopf. Was ist der Unterschied beim Laden einer Erweiterung über extension= vs. zend_extension?

+0

Tatsächlich scheiterte ich auch die Anweisungen zu lesen. Seltsamerweise erlaubte mir 'extension = xdebug.so' das Remote Debugging mit Hilfe von xdebug_break(), aber nicht mit IDE Breakpoints. –

Antwort

18

Im Kern der PHP-Sprache (mehr wie der Interpreter, weil eine Sprache nur eine Spezifikation ist) ist eine von Zend entwickelte Software (Interpreter, Bytecode-Compiler) namens "Zend Engine".

Jedes Modul, das mit diesem Kern in Konflikt kommt, sollte als "zend_extension" installiert werden.

Und noch, um Ihr Problem zu lösen, ignorieren Sie diesen Erklärungsversuch und konsultieren Sie die Dokumentation der Erweiterung, die Sie konfigurieren - http://www.xdebug.org/docs/install.

30

Zend_extentions gehören zu den Erweiterungen, die in die Zend Engine selbst eingebaut werden. PHP, das selbst in zend engine eingebaut ist. Diese Engine analysiert, analysiert und führt PHP-Skripte aus. Wenn wir die Engine ändern, ändert sich die Art der PHP-Arbeit.

folgende Meldung wird die Hauptunterschied zwischen Erweiterung und zend_extension von PHP

Beide Erweiterung Arten teilen viele Sachen beschreiben. Der Unterschied zwischen beiden Typen besteht hauptsächlich in Haken, die sie in der Engine registrieren. Denken Sie daran, dass eine Erweiterung, obwohl es sehr ungewöhnlich ist, gleichzeitig eine PHP-Erweiterung und eine Zend-Erweiterung sein kann. Xdebug ist ein gutes Beispiel.

Unten finden Sie die Grafik für ein Hauptschema enter image description here

For more detail refer this link

+0

Ich schätze diesen Detaillink, der mir erklärte, dass Zend Extensions nicht statisch in PHP kompiliert werden können, was auf eine alte Frage antwortete, die ich hatte. –