我正在使用带有how to create an entity inside another in the same form using admin-on-rest?和Xdebug的vim来调试Vdebug plugin的WebDAV服务器。 Nextcloud使用SabreDAV,因此WebDAV服务器是一个PHP脚本。 nextcloud使用的桌面文件同步客户端(nextcloud instance使本地文件夹与nextcloud Web存储保持同步。
我希望在WebDAV文件上传(大概是PUT
)请求时调试nextcloud服务器的配额计算问题。但是,如果本地文件发生更改,则owncloud客户端会向服务器发出多个WebDAV请求,其中第一个请求对我来说不重要(可能是PROPFIND
或类似的)。只有在这个不感兴趣的请求之后,才会发送上传请求。但是,如果我将vim设置为通过Xdebug(:VdebugStart
)侦听传入连接,则第一个无趣的WebDAV请求会建立连接,但我想为以后传入的Xdebug连接建立连接。但是,在自己的客户端使用有趣的WebDAV请求再次调用服务器之前,我还不够快,无法将vim设置为侦听模式。
可能有两种方法可以解决这个问题:
xdebug_connect_now_to_client()
函数而不是Xdebug连接到vim。你知道实现其中一个目标的可能性,还是有其他解决方案?
相关的php.ini
条目:
zend_extension=xdebug.so
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
; have to set this, because owncloud does not set the
; XDEBUG_START_SESSION=true GET parameter
xdebug.remote_autostart=on
xdebug.idekey=netbeans-xdebug
答案 0 :(得分:1)
就像您一样,我遇到了使用xdebug和vdebug在NextCloud中调试WebDav请求的问题。
我喜欢上面的LazyOne的建议在断点处进行编码。
我最终要做的是设置
xdebug.remote_log=/tmp/xdebug_remote.log
xdebug.trace_options=1
# Write a trace file per process
xdebug.trace_output_name=trace.%p
# Only trace if we get XDEBUG_TRACE
xdebug.auto_trace=0
xdebug.trace_enable_trigger=1
,并尽可能使用下面的插件仅针对我的请求启用调试。
https://addons.mozilla.org/en-US/firefox/addon/xdebug-helper-for-firefox/
我还发现,启用跟踪功能至少有助于初步了解我需要在代码中查找的位置,这也可能有助于您设置手动断点。再次在这里,您可以使用插件最小化将生成跟踪的请求。
; Choose how the process manager will control the number of child processes.
; Possible Values:
; static - a fixed number (pm.max_children) of child processes;
pm = static
我也在使用php-fpm设置
NSString.newLine;
因此,没有大量的进程创建跟踪文件和发出请求