NetBeans 不会在 PHP 代码中的某些断点处停止
NetBeans not stopping on some breakpoints in PHP code
我在使用 xdebug 时遇到问题,因为不要在某些断点处停止。
我的项目有 MVC 架构,并且在我创建子控制器时调试时一切正常,因为在子控制器中断点不起作用。如果我把 xdebug_break()
放在子控制器中,它就会工作。
我查了xdebug_remote.log
这个断点不起作用
<- breakpoint_set -i 1309 -t line -s enabled -f file:///var/www/my_project/app/controllers/settings/LanguageController.php -n 18
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1309" state="enabled" id="59770002"></response>
这个断点有效
<- breakpoint_set -i 1310 -t line -s enabled -f file:///var/www/my_project/app/controllers/IndexController.php -n 15
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1310" state="enabled" id="59770003"></response>
有可能,那个命名空间有罪?控制器和子控制器之间的一个区别是名称空间。在controller中没有定义,在subcontroller中有定义
我解决了这个问题。我将名称空间更改为小写,之前是驼峰式,我在文件夹结构上更改了寄存器名称空间。
之前在控制器中:
namespace MyApp\Controllers\Settings;
在loader.php
$loader->registerNamespaces( [ 'MyApp\Controllers\Settings' => DIR.'/../controllers/settings' ] )->register();
之后(正常工作)
在控制器中:
namespace app\controllers\settings;
在loader.php
$loader->registerNamespaces( [ 'app\controllers\settings' => DIR.'/../controllers/settings' ] )->register();
我在使用 xdebug 时遇到问题,因为不要在某些断点处停止。
我的项目有 MVC 架构,并且在我创建子控制器时调试时一切正常,因为在子控制器中断点不起作用。如果我把 xdebug_break()
放在子控制器中,它就会工作。
我查了xdebug_remote.log
这个断点不起作用
<- breakpoint_set -i 1309 -t line -s enabled -f file:///var/www/my_project/app/controllers/settings/LanguageController.php -n 18
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1309" state="enabled" id="59770002"></response>
这个断点有效
<- breakpoint_set -i 1310 -t line -s enabled -f file:///var/www/my_project/app/controllers/IndexController.php -n 15
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1310" state="enabled" id="59770003"></response>
有可能,那个命名空间有罪?控制器和子控制器之间的一个区别是名称空间。在controller中没有定义,在subcontroller中有定义
我解决了这个问题。我将名称空间更改为小写,之前是驼峰式,我在文件夹结构上更改了寄存器名称空间。
之前在控制器中:
namespace MyApp\Controllers\Settings;
在loader.php
$loader->registerNamespaces( [ 'MyApp\Controllers\Settings' => DIR.'/../controllers/settings' ] )->register();
之后(正常工作)
在控制器中:
namespace app\controllers\settings;
在loader.php
$loader->registerNamespaces( [ 'app\controllers\settings' => DIR.'/../controllers/settings' ] )->register();