我正在使用带有Vdebug 插件和 Xdebug 的 vim 来调试nextcloud 实例的 WebDAV 服务器。Nextcloud 使用 SabreDAV,因此 WebDAV 服务器是一个 PHP 脚本。nextcloud 使用的桌面文件同步客户端(owncloud)将本地文件夹与 nextcloud 网络存储保持同步。
PUT
我想根据 WebDAV 文件上传(大概)请求调试 nextcloud 服务器的配额计算问题。但是,如果本地文件发生更改,owncloud 客户端会向服务器发出多个 WebDAV 请求,其中第一个请求对我来说不重要(大概是一个PROPFIND
或类似的)。只有在这个无趣的请求之后,才会发送上传请求。但是,如果我将 vim 设置为通过 Xdebug ( :VdebugStart
) 侦听传入连接,则第一个无意义的 WebDAV 请求会建立连接,但我想为以后传入的 Xdebug 连接建立连接。但是,在 owncloud 客户端使用有趣的 WebDAV 请求再次调用服务器之前,我没有足够快将 vim 设置为监听模式。
可能有两种处理方法:
- 在第一个(无趣)结束后,让 vim 非常快地监听新的 Xdebug 连接
- 使 PHP 不是从一开始就建立 Xdebug 连接,而是仅在调用某个代码块时,该代码块对应于客户端感兴趣的上传请求。我可以从一开始就插入一些 PHP 函数
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