[英]Parallel debugging - xdebug and phpstorm
我嘗試進行並行調試。 我將PhpStorm調試教程 (約30分鍾以上)與frontend.php和backend.php文件一起使用:
frontend.php文件:
<?php
$personJson = file_get_contents('http://localhost:777/projects/debug-both/backend.php/backend.php');
$person = json_decode($personJson);
var_dump($person);
backend.php文件:
<?php
class Person {
public $name;
public $email;
}
$person = new Person();
$person->name = 'Something';
$person->email = 'something@something.com';
echo json_encode($person);
我使用零配置方法。 當我在帶有調試會話的瀏覽器中啟動前端文件時,在PhpStorm中調試會話正在啟動,但是我無法跨過行:
file_get_contents('http://localhost:777/projects/debug-both/backend.php/backend.php');
轉到教程中的backend.php
文件(視頻中的31:36)。
問題:如何使其工作? 在此視頻中,僅此而已,似乎應該可以立即使用,但事實並非如此。
我包括來自phpinfo的xdebug配置 和xdebug配置在PhpStorm中
1. Settings | PHP | Debug | Max simultaneous connections
Settings | PHP | Debug | Max simultaneous connections
Settings | PHP | Debug | Max simultaneous connections
-應該大於1。您已經設置了它。
2. xdebug.remote_autostart
應該為1
/ on
。 這將告訴xdebug嘗試調試每個單個請求,而不管調試cookie /參數如何。
這是必需的,因為您的第二個腳本將不會收到與原始腳本相同的cookie /參數(因為這在技術上是單獨的請求)。
是的,此選項可能不適用於日常開發,因為它將嘗試調試每個單個請求,並且如果調試客戶端不可用...您將看到腳本執行大約延遲1秒。
替代方法 (在您的特定情況下)將是在調用第二個腳本時將xdebug GET參數(例如?XDEBUG_SESSION_START=1
)添加到URL中。 這將告訴xdebug調試此請求。 例如:
file_get_contents('http://localhost:777/projects/debug-both/backend.php/backend.php?XDEBUG_SESSION_START=1');
如您所見,這種方法需要修改代碼(請求的URL)。 通常這是不希望的。
另一種選擇是通過添加xdebug_break();
來以編程方式設置斷點xdebug_break();
。 即使沒有這些額外的參數/ cookie或remote_autostart
設置,這也應該觸發調試器。
缺點是一樣的:需要代碼操作。 好處是-與更改URL相比,它應該更容易實現(+更容易閱讀/理解正在發生的事情)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.