‘壹’ 大佬,请问一下php的debug和xdebug有啥区别
php的debug通常都浏览器打印信息进行调试,比如在代码里面使用 echo、 var_mp、print_r等输出数据来查看代码的执行。
优点:
简单、使用方便
缺点:
要单步更追,比较费劲
xdebug是一个php的c语言扩展,支持单步调试打断点。可以和IDE配合使用,可以输出函数等调用次数时间。但是对程序有一定的消耗。跟追函数递归调用还是很方便的。
‘贰’ PHP的扩展模块怎么添加
在PHP/etc 文件夹中加入扩展
在PHP 文件夹下的php.ini文件里 有很多dll文件的地方加入一行 你所添加的扩展的名字xxxx.dll
或者 是 在php.ini中直接打开对应的扩展 ,将目标行的 ; 给去掉
哦,对了,最后记得要重新启动PHP的服务器
‘叁’ 如何使用 Xdebug + Sublime Text 3 调试 PHP 代码
Sublime是一款非常不错的IDE工具,php开发中通常也用到。如此好用的工具如何调试呢,那就用到了xDebug。下面演示如何给Sublimetext2配置xdebug。 工具/原料 sublimetext2; apache服务器,或其他web服务器; 电脑。 方法/步骤 准备工作:开启phpxdebug扩展。 下载扩展:php_xdebug-2.1.0-5.3-vc6.dll; 网络网盘下载地址: 下载好放在php下的扩展(ext)文件夹下: 如何给Sublimetext配置XDebug 设置php.ini配置文件: [XDebug]extension="php_xdebug-2.1.0-5.3-vc6.dll"xdebug.remote_enable=onxdebug.remote_handler="dbgp"xdebug.remote_host="127.0.0.1"xdebug.remote_port=9000 如何给Sublimetext配置XDebug 重启apache,然后运行phpinfo();检查xdebug是否安装成功: 如何给Sublimetext配置XDebug 然后打开sublimetext软件; 如何给Sublimetext配置XDebug 点击菜单栏:View-》ShowConsole或者ctrl+~快捷键,调出控制台; 如何给Sublimetext配置XDebug 在命令栏输入: importurllib2,os;pf='PackageControl.sublime-package'ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace('','%20')).read());print('') 然后回车;
‘肆’ 如何在Mac OS X中安装PHP扩展支持
安装PHP扩展要求Mac系统已经安装了Xcode环境和命令行开发工具,如果还没安装,可以使用Shell安装。
xcode-select --install
为了扩展管理方便,首先来安装pecl扩展管理器。
cd /usr/lib/php
sudo php install-pear-nozlib.phar
安装Redis、Memcache、Mongo等扩展。
sudo pecl install redis
sudo pecl install memcache
sudo pecl install mongo
sudo pecl install xdebug
将扩展配置添加的php.ini文件型掘中:
extension=memcache.so
extension=mongo.so
extension=redis.so
zend_extension=xdebug.so
安装xcache,从官网下载,解压缩并安装
tar xvf xcache-3.2.0.tar
cd xcache-3.2.0
phpize
。/configure
make
sudo make install
配置XCache
[xcache]
xcache.size = 128M
xcache.var_size = 8M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.optimizer = Off
由于Mac自带的PHP环境是不包括mcrypt扩展的,所以需要下载同版本的php源码包,单独编译这个模块加载。从官网的归档里面找到php5.5.14的源码包,下载:http://php.net/releases/
tar zxvf php-5.5.14.tar.gz
cd php-5.5.14/ext/mcrypt/
phpize。/configure
make
sudo make install
配置ext-mcrypt
extension=mcrypt.so
为了加速,还需要打开opcache。
zend_extension=opcache.so
[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=0
毕租桐; Determines if Zend OPCache is enabled for the CLI version of PHP
opcache.enable_cli=0
以上就是在MAC OS X系统中安装PHP扩展的方手坦法,
‘伍’ php不打印调用栈
基于以上原因,今天我们就来讲一讲在 PHP 项目当中,怎样快速得到 PHP 调用栈。
PHP 调用栈,顾名思义就是从我们 Web 访问项目的时候,PHP 从执行开始到返回给我们结果的这一系列操作的 PHP 类/方法等调用的过程。
一、利用 XDebug 扩展的 xdebug_get_function_stack() 函数
对 XDebug 扩展了解的同学,可以知道 XDebug 的功能主要用于代码调试。其中,XDebug 就提供了一个非常有用的函数:xdebug_get_function_stack()。
从这个函数的的名字我们可以知道它就是获取方法调用栈的。
我们只需要在项目当中放到 PHP 脚本当中,只要这个方法被执行到。那么,这个方法就能打印 PHP 脚本从开始到执行到这个位置的所有调用栈。从而就能解决我们对代码执行流程不清晰的旁唯问题。
这个方法会返回一个数组。数据里面包含了执行的脚本文件路径、类名、方法名、参数等信息。
注:该方法生成的调用栈信息相对比较粗糙运谈培。对于简单初浅调试完成够用了。同时,要使用这个方法,必须安装 XDebug 扩侍清展。PHP 安装 XDebug 扩展的教程网上很多。这里不赘述。
二、利用 phptrace 扩展查看
phptrace 是一个追踪(trace)PHP 执行流程的工具。这是奇虎 360 团队开源的一款 PHP 扩展工具。它本身的功能之一就是查看 PHP 调用栈。所以,推荐指数 5 颗星。
项目开源地址:https://github.com/Qihoo360/phptrace
安装扩展:
$ wget https://pecl.php.net/get/trace-1.0.1beta.tgz
$ tar zxvf trace-1.0.1beta.tgz
$ cd trace-1.0.1beta/extension
$ {php_bin_dir}/phpize
$ ./configure --with-php-config={php_bin_dir}/php-config
$ make
$ make cli
$ make install-all
然后在 php.ini 配置文件末尾增加:
extension=trace.so
重启我们的 PHP-FPM。
为了能在命令行使用 phptrace 提供的命令,我们还需要在刚刚的 exten
‘陆’ phpstorm和postman关于xdebug安装和使用
一,慧返
查找合适的版本:正颤 https://xdebug.org/wizard
安装xdebug扩展并且配置php.ini
二,phpStorm配置
2.1 端口号和php.ini配置的端口号一致即前清饥可。
2.2 IDE key和xdebug.idekey一致,host当前项目的域名
三,PostMan配置
设置cookie XDEBUG_SESSION是调试的时候必须传的参数:XDEBUG_SESSION=PHPSTORM,cookie里就会默认带上该参数
四,PostMan发起请求,然后再项目里打断点,这时phpstorm 就会有断点信息输出。
‘柒’ php5.5怎么配置xdebug
用phpstudy 2014集成包里面已经集成xdebug,已经配好。在菜单php扩展管理勾上xdebug即可。如图