zoukankan      html  css  js  c++  java
  • php window系统 xdebug+phpstorm 本地断点调试使用教程

    运行环境:

    phpStorm 2017.2

    PHP 7.1.5

    Xdebug 2.6.1

    php.ini添加xdebug模块

    你需要仔细分析和选择要下载的对应版本,否则无法调试。由于非常容易出错,建议采用下面这种简单方法【注意:如果php版本与xdebug版本不匹配,虽然xdebug能安装成功,但会出现phpstorm配置xdebug只有第一行断点能触发的问题,如出现这个问题请重新更换xdebug版本】

    首先获取phpinfo()函数的信息,如下图

    ctrl+A全选这个页面的信息,然后粘贴到第一个图片的页面中。

    不知道这个页面如何出现的同学在你的php服务器程序目录下 创建一个phpinfo.php文件,只需一行代码

    <?php  phpinfo(); ?>

    浏览器中输入 http://127.0.0.1/phpinfo.php 就出现上图的页面了。
    然后,xdebug网站提供一个自动分析你系统对应的xdebug版本的页面,网址是  https://xdebug.org/wizard.php,打开把复制的内容输入到网址的编辑框中,如下图

    把下载的dll文件放到php的ext扩展目录里面,最后在php.ini上添加以下配置:

    zend_extension = "D:PHPWAMP_IN2phpwampserverphp-nts-7.1.5extphp_xdebug-2.6.1-7.1-vc14-nts.dll"    ;指定Xdebug扩展文件的绝对路径,请自行修改此行配置
    xdebug.idekey = PHPSTORM    ;指定传递给DBGp调试器处理程序的IDE Key
    xdebug.auto_trace=1    ;启用代码自动跟踪
    xdebug.collect_params = 1    ;允许收集传递给函数的参数变量
    xdebug.collect_return = 1    ;允许收集函数调用的返回值
    xdebug.auto_trace = 1    ;启用代码自动跟踪
    xdebug.remote_enable = 1    ;是否开启远程调试
    xdebug.remote_host = localhost    ;指定远程调试的主机名
    xdebug.remote_port = 9070    ;指定远程调试的端口号
    xdebug.remote_handler = dbgp   ;指定远程调试的处理协议

    重启apache 或者nginx检测xdebug是否安装成功。【特别提示:不管是Windows还是Linux安装xdebug都需要以zend扩展的形式安装,如果提示XDEBUG NOT LOADED AS ZEND EXTENSION即下图所示界面则没有正确安装,需要重新修改配置文件。】

    phpstorm配置xdebug支持

    打开phpStorm,快捷键Clt+Alt+S打开settings,配置debug

     打开phpStorm,快捷键Clt+Alt+S打开settings,配置services

     

     打开phpStorm,快捷键Clt+Alt+S打开settings,配置dbgp

     打开phpStorm,添加调试配置

     打开phpStorm,断点运行查看效果。

    附带本例子调试的php代码,博主使用调试链接为:http://127.0.0.1/xdebug/index.php

    //封装方法,取余
    function kmod($x, $y)
    {
        //fmod() 函数返回除法的浮点数余数
        return intval(fmod(floatval($x), $y));
    }
    
    //数字标识
    $mark_num = 1111;
    //总数
    $count = 15;
    echo  rand(111,222222);
    $remainder_arr = [];
    if(is_numeric($mark_num)){
        $y = $count/2;
        $init_num = 1;
        $step = 1;
        $auto_num = 1;
        while ($init_num <= 5) {
            if($step%2== 1){
                $remainder = kmod($mark_num-$step,$y);
            }else{
                $remainder = kmod($mark_num+$step,$y);
            }
            if(!in_array($remainder,$remainder_arr)){
                $remainder_arr[] = $remainder;
                $init_num++;
            }
            if($auto_num >=100000){
                //防止死循环
                break;
            }
            $auto_num++;
            $step++;
        }
    }
    
    print_r($remainder_arr);
    echo 1;

    postman使用xdebug调试

    实质上,只要带上参数 XDEBUG_SESSION_START=PHPSTORM 即可,或者把XDEBUG_SESSION_START=PHPSTORM放到cookies使用

  • 相关阅读:
    PyQt作品 – PingTester – 多点Ping测试工具
    关于和技术人员交流的一二三
    Pyjamas Python Javascript Compiler, Desktop Widget Set and RIA Web Framework
    Hybrid Qt applications with PySide and Django
    pyjamas build AJAX apps in Python (like Google did for Java)
    PyQt 维基百科,自由的百科全书
    InfoQ:请问为什么仍要选择Java来处理后端的工作?
    Eric+PyQt打造完美的Python集成开发环境
    python select module select method introduce
    GUI Programming with Python: QT Edition
  • 原文地址:https://www.cnblogs.com/-mrl/p/10139895.html
Copyright © 2011-2022 走看看