成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

推薦代碼調(diào)試工具 Xdebug

MartinHan / 1027人閱讀

摘要:寫代碼總繞不過需要調(diào)試,除了外,我們還是需要借助進(jìn)行調(diào)試。這里的使用,是分別整合到和下。安裝還是基于神級武器。至于下一步如何更好的使用,就看各自的實(shí)際項(xiàng)目和開發(fā)需要了。

寫代碼總繞不過需要調(diào)試,除了 UnitTest 外,我們還是需要借助 Xdebug 進(jìn)行調(diào)試。

所以今天來說說如何基于本地 Docker 環(huán)境下,使用 Xdebug。

這里的使用,是分別整合到 VS Code 和 PHPStorm 下。

安裝 Xdebug

還是基于神級武器 —— Laradock。我們先看看 Laradock 官網(wǎng)是怎么安裝 Xdebug。

Install xDebug#

1 - First install xDebug in the Workspace and the PHP-FPM Containers:

a) open the .env file
b) search for the WORKSPACE_INSTALL_XDEBUG argument under the Workspace Container
c) set it to true
d) search for the PHP_FPM_INSTALL_XDEBUG argument under the PHP-FPM Container
e) set it to true

2 - Re-build the containers docker-compose build workspace php-fpm

參考:https://laradock.io/documentation/#install-xdebug

我們修改對應(yīng)的地方,然后 build,如果出現(xiàn)下面的錯(cuò)誤提示:

嘗試添加國內(nèi)源試試:

RUN  sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list

重新 docker-compose up -d nginx 后,在 Windows / Mac 下用命令 ./php-fpm/xdebug status 查看安裝狀態(tài):

配置 Xdebug

目前開發(fā)使用 IDE,個(gè)人覺得普遍用的最多的就是 VS Code 和 PHPStorm。所以下面就利用這兩個(gè) IDE,分別說說如何使用 Xdebug 的。

VS Code

在 VS Code 下,如果沒安裝 Xdebug 插件,直接搜索安裝即可:

安裝后,增加 Xdebug 環(huán)境配置:

這樣就會(huì)項(xiàng)目的 .vscode 文件夾下多了一個(gè) Xdebug 配置文件 launch.json,我們配置端口號與 php-fpm 下的 Xdebug 一致,我們再配置 pathMappingsdocker 下的項(xiàng)目路徑與本地項(xiàng)目路徑關(guān)聯(lián)。具體如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "XDebug listening to Laradock",
            "log": true,
            "type": "php",
            "request": "launch",
            "port": 9000,
            "pathMappings": {
                "/var/www/myrss": "${workspaceFolder}",
            }
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

好了,我們啟動(dòng) XDebug,打印出如下內(nèi)容,即表示等待請求:

我們寫個(gè) Demo,并設(shè)置斷點(diǎn):

Artisan::command("hello", function () {
    $i = 0;
    $i++;

    return "hello".$i;
});

然后啟動(dòng) Xdebug,并執(zhí)行命令:

php artisan hello

我們可以看到很多輸入、輸出、斷點(diǎn)等信息:

其中我們也能看到此時(shí)的變量 $i 處于未初始狀態(tài):

我們在這斷點(diǎn)繼續(xù)往下執(zhí)行:

PHPStorm

在 Mac 或者 Windows 10 下 Docker 的默認(rèn) ip 為:10.0.75.1,

我們先增加一個(gè) Server,其中:

Name:laradock

Host: 10.0.75.1

mappings,等同于上文 VS Code 配置的 pathMappings

然后,可以新建 PHP Remote Debug,其中:

Server:關(guān)聯(lián)到我們上面建的 laradock

IDE key:和 Laradock‘s php-fpm 中配置的保持一致即可

好了,我們可以使用 demo,創(chuàng)建斷點(diǎn),運(yùn)行 Debug 等待請求::

一樣的,執(zhí)行命令:php artisan hello

我們繼續(xù)往下走:

總結(jié)

用好 Xdebug,更加直觀的了解方法中每個(gè)變量的動(dòng)態(tài)變化,能提高我們跟蹤和排查代碼的問題所在。至于下一步如何更好的使用 Xdebug,就看各自的實(shí)際項(xiàng)目和開發(fā)需要了。

參考

Setting up xDebug with PHPUnit using Docker for Mac and PHPStorm https://intellij-support.jetbrains.com/hc/en-us/community/posts/360000229624-Setting-up-xDebug-with-PHPUnit-using-Docker-for-Mac-and-PHPStorm

Laradock + XDebug + MS Code? No problem https://medium.com/full-stack-development/laradock-xdebug-ms-code-no-problem-35a4338deb3f

Laradock的xdebug在vscode上使用的配置 https://www.itread01.com/content/1526278934.html

如何設(shè)定VSCode XDebug在laradock環(huán)境上 https://blog.scottchayaa.com/post/2018/10/16/vscode-phpunit-on-laradock/

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29593.html

相關(guān)文章

  • 生產(chǎn)力工具 - PHPSTORM(xdebug, database, ftp, git, restf

    摘要:確實(shí)是一款非常好用的生產(chǎn)力工具他的代碼提示檢錯(cuò)重構(gòu)調(diào)試都非常的棒而且自帶的文件歷史功能好用的我都快哭了幫我挽救了沒來得及提交到的代碼其實(shí)不只可以寫寫包括也是極好的的功能他全部都有并且還有很多的好用的插件針對的針對的比如比如官方網(wǎng)站環(huán)境說明環(huán) showImg(https://segmentfault.com/img/bVCT8T?w=600&h=360); PHPSTORM 確實(shí)是一款非...

    Zack 評論0 收藏0
  • docker中php xdebug調(diào)試開發(fā)

    摘要:這樣就配置好了安裝插件監(jiān)聽地址開啟小電話以后,如果訪問會(huì)自動(dòng)進(jìn)入斷點(diǎn)中的模式,這樣我們的開發(fā)環(huán)境的斷點(diǎn)調(diào)試就已經(jīng)配置好了。 docker-compose環(huán)境來自:https://github.com/zhaojunlik...原文:http://blog.oeynet.com/post/9... 說明 在開發(fā)中,斷點(diǎn)調(diào)試是我們最快能找出Bug代碼問題的所在,那么在docker中如何使用...

    import. 評論0 收藏0
  • docker中php xdebug調(diào)試開發(fā)

    摘要:這樣就配置好了安裝插件監(jiān)聽地址開啟小電話以后,如果訪問會(huì)自動(dòng)進(jìn)入斷點(diǎn)中的模式,這樣我們的開發(fā)環(huán)境的斷點(diǎn)調(diào)試就已經(jīng)配置好了。 docker-compose環(huán)境來自:https://github.com/zhaojunlik...原文:http://blog.oeynet.com/post/9... 說明 在開發(fā)中,斷點(diǎn)調(diào)試是我們最快能找出Bug代碼問題的所在,那么在docker中如何使用...

    kyanag 評論0 收藏0
  • PHP Q&A

    摘要:有哪些作用域函數(shù)作用域類作用域函數(shù)作用域是什么函數(shù)體是一個(gè)局部作用域函數(shù)體中無法直接訪問外部全局變量,必須通過才能訪問外部全局變量無法訪問通知錯(cuò)誤正確訪問外部全局變量無法訪問函數(shù)體中可以直接訪問常量輸出函數(shù)體中可以直接訪問類靜態(tài)屬性靜態(tài)方法 PHP 有哪些作用域? 函數(shù)作用域 類作用域 PHP 函數(shù)作用域是什么? 函數(shù)體是一個(gè)局部作用域 函數(shù)體中無法直接訪問外部全局變量,必須通...

    mikasa 評論0 收藏0
  • XDEBUG 從入門到精通

    摘要:默認(rèn)關(guān)閉如果該設(shè)置為,那么將禁用關(guān)閉操作符,以便不再隱藏通知警告和錯(cuò)誤。將寫入垃圾收集統(tǒng)計(jì)信息輸出的目錄,確保將運(yùn)行的用戶具有對該目錄的寫入權(quán)限。此設(shè)置確定用于將垃圾回收統(tǒng)計(jì)信息轉(zhuǎn)儲(chǔ)到的文件的名稱。 showImg(https://segmentfault.com/img/bVbgEC5?w=480&h=274); 前言 Xdebug是PHP的擴(kuò)展,用于協(xié)助調(diào)試和開發(fā)。 它包含一個(gè)用...

    leejan97 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<