Zend Debbugger включает не тот файл.
Это в том числе
, скорее, чем
/home/jlam/code/tenjin/src/wordpress/wp-content/plugins/badgeos/includes/steps-ui.php
/home/jlam/code/tenjin/src/wordpress/wp-content/plugins/badgeos-community-add-on/includes/steps-ui.php
Как видите, файлы имеют одинаковые имена, но разные пути.
Вот что происходит:
Я использую Zend Debugger v5.3 с Zend Engine v2.4.0, php 5.4 для отладки WordPress 4.2.1 с плагинами BadgeOS 1.4.4 и BadgeOS Community Add-On v 1.2.0 (плюс еще несколько не относящихся к делу плагинов).
Я получаю следующую ошибку компиляции в консоли Eclipse:
Compile Error: /tenjin/src/wordpress/wp-content/plugins/badgeos/includes/steps-ui.php line 23 - Cannot redeclare badgeos_steps_ui_admin_scripts() (previously declared in /home/jlam/code/tenjin/src/wordpress/wp-content/plugins/badgeos-community-add-on/includes/steps-ui.php:18)
badgeos_steps_ui_admin_scripts
на самом деле не существует в /home/jlam/code/tenjin/src/wordpress/wp-content/plugins/badgeos-community-add-on/includes/steps-ui.php
Zend Debugger на самом деле включает в себя /tenjin/src/wordpress/wp-content/plugins/badgeos/includes/steps-ui.php
дважды, когда его не допустим.
Вот как я могу сказать:
У меня точка останова на /tenjin/src/wordpress/wp-content/plugins/badgeos-community-add-on/badgeos-community.php
в строке 90. где это поручено
require_once( $this->directory_path . '/includes/steps-ui.php' );
Значение $this->directory_path
является /home/jlam/code/tenjin/src/wordpress/wp-content/plugins/badgeos-community-add-on/
Однако, если я сделаю шаг в этот момент, отладчик окажется в строке 18
,
/home/jlam/code/tenjin/src/wordpress/wp-content/plugins/badgeos/includes/steps-ui.php
не
/home/jlam/code/tenjin/src/wordpress/wp-content/plugins/badgeos-community-add-on/includes/steps-ui.php
По предложению http://www.kpsolution.com/php/zend-debugger-loading-wrong-file-while-debugging/115/, отображение пути было неверным.
В пользовательском веб-сервере для этого проекта было выполнено дополнительное (и неправильное) сопоставление ‘Windows’ -> ‘Preferences’ -> ‘PHP’ -> ‘PHP Servers’
,
Других решений пока нет …