NetBeans不停止在PHP代码中的某些断点

问题描述:

我有xdebug的问题,因为不停止在某些断点。NetBeans不停止在PHP代码中的某些断点

我的项目有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> 

这是可能的,该命名空间是有罪的?控制器和子控制器之间的一个区别是命名空间。在控制器中没有定义,但在子控制器中定义。

+0

命名空间? - 不太可能(代码本身在这种情况下可能不起作用)。他们是什么类型的行 - 请显示该非工作断点的截图。 – LazyOne

我解决了这个问题。我在camelcase之前将命名空间更改为小写,并且我改变了完全文件夹结构上的寄存器命名空间。

在控制器前:

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();