2017-05-12 80 views
2

如果請求是從網絡工作者內部開始的,Xdebug是否可能不會停在斷點處? 我正在做一個fetch()請求。Xdebug不停止,如果從網絡工作者使用?

fetch(datatable_instance_defaults.pathToSqlFile + 'returnSqlRes.php', 
    { 
     headers: { 
      'Accept': 'text/plain', 
      'Content-Type': 'application/x-www-form-urlencoded' 
     }, 
     method: "post", 
     body: JSON.stringify(sql) 
    }) 
    .then(function (res) { 
     return res.json(); 
    }) 
+1

如何啓用請求使用xdebug?你使用GET參數XDEBUG_SESSION_START還是使用像easyXdebug這樣的瀏覽器擴展? –

+0

作爲@KevinDitscheid說 - 要麼傳遞「調試這個」標記(cookie或GET/POST參數),以便xdebug知道它應該調試此請求....或配置xdebug試圖調試每個請求('xdebug。 remote_autostart = 1'在你的php.ini中)。 – LazyOne

+0

我使用瀏覽器擴展。謝謝LazyOne,虐待它@home導致它的一個副項目,我有... –

回答

3

由於網絡的工人API有根據DedicatedWorkerGlobalScope您Xdebug的會話cookie無法沿着服務器傳遞到會話存儲不能訪問,這樣就不會從主線程識別您打開Xdebug的會議。

您可以臨時將XDEBUG_SESSION_START GET參數添加到您的URL以啓動新的Xdebug會話。 (見的XDebug的the documentation,太)

fetch(datatable_instance_defaults.pathToSqlFile + 'returnSqlRes.php?XDEBUG_SESSION_START=session_name', 

這是一個有點不方便做這種方式,但我想,插件開發者需要想出一個辦法來保持Xdebug的會話或重新啓動它的服務 - 工人請求。