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使用

  • 相关阅读:
    HybridAPP开发框架Ionic+AngularJS+Cordova搭建
    MySQL数据类型DECIMAL用法
    RabbitMQ用户管理
    Linux中Mysql root用户看不到mysql库问题解决方式
    RabbitMQ环境安装
    RabbitMQ简介
    Mysql根据一个基库生成其他库与其不同的库升级脚本
    关于中文乱码的解决方法(URL方式)
    java反射机制
    the jar file rt.jar has no source attachment
  • 原文地址:https://www.cnblogs.com/-mrl/p/10139895.html
Copyright © 2011-2022 走看看