43

を介して Xdebug をインストールするとpecl、次の行が php.ini ファイルに追加されました。

extension="xdebug.so"

そして、私が使用したものはすべて機能しました。今日まで。

今日、対話型デバッグ用に Xdebug をセットアップする際に問題が発生しました。上記を次のように変更するまで、何も機能しませんでした

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

(注意:これが私を働かせた理由だと思いますが、100%確信はありません)

これは私の心に疑問を投げかけました。と を介して拡張機能をロードすることの違いは何extension=ですかzend_extension?

4

2 に答える 2

39

Zend_extentions は、Zend エンジン自体に組み込まれている拡張機能です。エンジンは PHP スクリプトを解析、解釈、実行します。エンジンを変更すると、PHP の動作が変わります。

付属の図は、拡張機能と zend_extension の主な違いを説明しています。

どちらの種類の拡張機能も、多くの機能を共有しています。両方のタイプの違いは、主にエンジンに登録するフックにあります。非常に珍しいことですが、拡張機能は PHP 拡張機能と Zend 拡張機能の両方になることができます。Xdebug が良い例です。

主なスキーマについては、以下の画像を見つけてください 拡張機能と zend_extensions の比較

詳細については、このリンクを参照してください

于 2013-10-09T08:51:00.577 に答える
23

PHP 言語 (言語は単なる仕様であるため、インタープリターに似ています) の中核には、Zend によって開発された "Zend Engine" と呼ばれるソフトウェア (インタープリター、バイトコード コンパイラー) があります。

このコアをいじるすべてのモジュールは、「zend_extension」としてインストールする必要があります。

それでも、問題を解決するには、この説明の試みを無視して、構成している拡張機能のドキュメントを参照してください - http://www.xdebug.org/docs/install

于 2009-11-18T18:38:05.013 に答える