2013年1月26日星期六

【转】error_reporting(0)

error_reporting(255);

是列出所有提示

error_reporting(0);

是不显示所有提示

建议使用

error_reporting(7);

只显示严重错误

1 E_ERROR 致命的运行时错误

2 E_WARNING 运行时警告(非致命性错误)

4 E_PARSE 编译时解析错误

8 E_NOTICE 运行时提醒(经常是bug,也可能是有意的)

16 E_CORE_ERROR PHP启动时初始化过程中的致命错误

32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)

64 E_COMPILE_ERROR 编译时致命性错

128 E_COMPILE_WARNING 编译时警告(非致命性错)

256 E_USER_ERROR 用户自定义的致命错误

512 E_USER_WARNING 用户自定义的警告(非致命性错误)

1024 E_USER_NOTICE 用户自定义的提醒(经常是bug,也可能是有意的)

2048 E_STRICT 编码标准化警告(建议如何修改以向前兼容)

4096 E_RECOVERABLE_ERROR 接近致命的运行时错误,若未被捕获则视同E_ERROR

6143 E_ALL 除E_STRICT外的所有错误(PHP6中为8191,即包含所有)

摘自:http://blog.sina.com.cn/s/blog_600c15f90100vgkc.html

【转】又换回平民Xdebug了

xdebug又出问题了。检查了下,原因是以前装zendOptimizer时把配置文件又改了。可恶的;zend_extension_ts="d:\xampp\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll" Zendbugger VS Xdebug一山不能容二虎。又配置了下xdebug ,贴出来也方便大家用了。

图方便的直接用ZendStudio 7 吧 已经傻瓜化了

window配置

[XDebug]
;; Only Zend OR (!) XDebug
;zend_extension_ts="d:\xampp\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_ts="d:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
;xdebug.profiler_enable=1
;xdebug.profiler_output_dir="D:\xampp\tmp"

;开启自动跟踪
xdebug.auto_trace = On
;开启异常跟踪
xdebug.show_exception_trace = On
;开启远程调试自动启动
xdebug.remote_autostart = On
;开启远程调试
xdebug.remote_enable = On
;收集变量
xdebug.collect_vars = On
;收集返回值
xdebug.collect_return = On
;收集参数
xdebug.collect_params = On

Linux配置

[XDebug] 

zend_extension="/usr/lib/php5/20060613+lfs/xdebug.so" 
xdebug.remote_enable=true 
xdebug.remote_host=127.0.0.1 
xdebug.remote_port=9000 
xdebug.remote_handler=dbgp 
;xdebug.profiler_enable=1 
;xdebug.profiler_output_dir="D:\xampp\tmp" 

;开启自动跟踪 
xdebug.auto_trace = On 
;开启异常跟踪 
xdebug.show_exception_trace = On 
;开启远程调试自动启动 
xdebug.remote_autostart = On 
;开启远程调试 
xdebug.remote_enable = On 
;收集变量 
xdebug.collect_vars = On 
;收集返回值 
xdebug.collect_return = On 
;收集参数 
xdebug.collect_params = On

摘自:http://hjshbxyy.blog.163.com/blog/static/17089071820097141015124/

【转】使用zend studio配置Xdebug调试PHP教程

之前我介绍了PHP开发工具Zend Studio7入门使用教程,其实使用zend studio调试PHP非常方便,zend studio默认支持调试工具zend debugger也允许使用第三方调试工具,今天以PHP教程形式分享如何使用zend studio配置Xdebug来调试PHP程序。

  使用Xdebug在zend studio中调试PHP源码之前,请务必安装配置Xdebug,这是基础教程,可参考PHP调试工具Xdebug安装配置教程一文,Xdebug结合zend studio在配置方面还是有点区别的。

  在zend studio中使用Xdebug调试PHP源码之前,需要针对zend studio对Xdebug进行配置,否则无法使用Xdebug调试PHP。

  针对zend studio配置Xdebug的教程

  打开PHP安装目录(如何安装配置PHP?)下的PHP.INI配置文件,我的是C:\PHP目录,找到Xdebug配置信息,在此基础上添加如下Xdebug配置信息

1
2
3
4
xdebug.remote_enable=true     //Xdebug允许远程IDE连接
xdebug.remote_host=127.0.0.1   //允许连接的zend studio的IP地址
xdebug.remote_port=9000       //反向连接zend studio使用的端口
xdebug.remote_handler=dbgp    //用于zend studio远程调试的应用层通信协议

重要说明:这里容易忽视的一个问题是xdebug.remote_host信息的配置,如果你使用的是局域网或 无线路由器,将xdebug.remote_host配置为127.0.0.1是无用的,会导致无法使用zend studio调试PHP,zend studio的单步调试按钮也无效!必须将xdebug.remote_host配置为zend studio安装机器的实际地址,IP地址可以通过ipconfig查看,由于我使用的是无线路由器,所以我将xdebug.remote_host配置 为192.168.1.100。

  最后重启apache服务器。

  Ok,下面我们就可以使用Xdebug在zend studio中进行调试工作了。

  由于zend studio默认支持调试PHP的工具是zend debugger,所以首先需要将zend studio PHP Debug选项配置为Xdebug,才能使用Xdebug。

  zend studio使用Xdebug调试PHP步骤一

  打开zend studio7,选择菜单Project->Properties,然后在弹出界面中选择左侧PHP Debug选项,如图

在zend studio中配置使用Xdebug调试PHP教程

在zend studio中配置使用Xdebug调试PHP教程

  勾选 Enable project specific settings选项,并选择PHP Debugger选项中的Xdebug选项,最后点击确定即可。

  说明:在使用zend studio调试PHP时,有时会出现一个问题,即zend studio调试PHP文件时没有使用Xdebug进行调试,可通过点击左侧上方的项目窗口选择具体的项目或项目文件,右击选择Properties选项进行配置,界面和上图一样。

  在zend studio中使用Xdebug调试PHP源码

  使用zend studio调试PHP,主要通过Debug As菜单,共有三种选择PHP Script、PHP Web Page、PHP Unit Test,此处选择PHP Web Page,由于可能存在同一PHP文件之前使用zend studio调试PHP时并没有选择使用Xdebug,需要清除旧的调试文件,可以通过Debug Configurations菜单清除上述三种zend studio调试方式中的文件,此处选择的是PHP Web Page,所以只要将此项中的文件清除即可。

  Debug Configurations可通过三种方式进入:1、右击需要调试的PHP文件,选择Debug As或者打开调试的PHP文件;2、选择菜单栏上Run菜单下的Debug As进入;3、点击菜单栏Run菜单下方小蜘蛛图标旁的向下箭头选择Debug Configurations。

  Debug Configurations配置完毕后,可打开需要使用zend studio调试的PHP文件选择Debug As中的PHP Web Page选项,核对好Launch Url后点击Ok即可调试,Xdebug在zend studio中调试PHP文件的画面如图

在zend-studio中使用xdebug调试PHP教程

在zend-studio中使用xdebug调试PHP教程

  如图你可以通过单步调试(F5)对PHP文件进行调试,只要Xdebug配置正确,在调试代码窗口中会出现选中的淡绿色背景代码,否则单步调试(F5)功能是失效的。

  最后你可以在D:\PHPWeb\xdebug\trace和D:\PHPWeb\xdebug\profiler目录下看到zend studio调试PHP文件时Xdebug输出的调试信息文件cachegrind.out.*和trace.*.xt。

  至此使用zend studio配置Xdebug调试PHP源码的基础教程就介绍完了,今后还将介绍更多zend studio调试PHP源码的PHP教程。

  PHP网站开发教程-leapsoul.cn版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。

摘自:http://www.cnblogs.com/rooney/archive/2011/11/04/2235852.html

【转】Xampp + Zend Studio 开启Xdebug调试功能

安装Xampp和Zend Studio就不介绍了,直奔主题。

第一步:配置Xdebug环境

打开Xampp安装目录的php\php.ini配置文件找到[XDebug]项,开启以下配置

;扩展dll引用路径(安装好Xampp后php\ext目录下就已有了php_xdebug.dll)
zend_extension = "D:\xampp\php\ext\php_xdebug.dll"

;创建文件的概要输出目录
xdebug.profiler_enable = 1

;设定效能监测信息输出文件的路径
xdebug.profiler_output_dir = "D:\xampp\tmp"

;远程调试是否开启
xdebug.remote_enable = true

;选择协议 可以为gdb 和 dbgp
xdebug.remote_handler = "dbgp"

; 远程调试的地址
xdebug.remote_host = "127.0.0.1"

;协议端口
xdebug.remote_port = 9001

以上这些配置可以基本满足调试环境需求。

配置完成以后重启Apache,打开http://localhost/xampp/中的phpInfo查看环境是否配置成功

第二部:配置Zend Studio Xdebug环境

1.打开Zend Studio 依次选择打开Window->Preferences->PHP->Debug->Installed Debuggers

  里面的Xdebug端口号要设置和php.ini里的xdebug.remote_port一致

2.点击图片中圈中的"蜘蛛"

   选择:Debug Configurations->右击"PHP Web Appliaction"->New一个Debug Configuration 配置如下图

配置完成后点击"Debug"进行调试

好了,整个的配置就完成了!

摘自:http://www.cnblogs.com/liyoulong/archive/2012/10/23/2735410.html

【转】Zend Studio下的PHP代码调试

问题:Zend Studio无法调试php代码

安装Zend Debugger

下载

http://downloads.zend.com/pdt/server-debugger下载最新的debugger

下载后将zip解压缩。得到一个目录:有x_x_x_compx_x_x_nts_compx指版本号,ntsnon thread safe,使用phpinfo查看你的php安装版本和thread safe属性,

配置

1、请将ZendDebugger.dll复制到您的php安装目录下,比如:你的php根目录/ext/

2、然后将下面的4行内容加到您的php.ini

[Zend]

zend_extension_ts=C:/wamp/bin/php/php5.2.9-2/ZendDebugger.dll

;此处ts代理线程安全

zend_debugger.allow_hosts=127.0.0.1

zend_debugger.expose_remotely=always

其中,127.0.0.1是远程调试的文件所在机器的IP;我是本地web调试

3、将dummy.php复制到apachedocument root目录。

4、重启apache

5.Zend StudioTools->preferences->debug下核对一下设置是正确的

6.测试Debugger是否成功

 

clip_image002[4]

 

问题:Test Debugger报错

clip_image004[4]

“A timeout occurred when the debug server attempter to connect to the following client hosts/IPS”

所以注意了:如果你的php版本是5.3以上,且是thread safe的,那么不要浪费你的时间做尝试,建议你直接改用XDebug吧。以下官方给出的解释。

 

 

The Debugger we provide supports only the non-thread-safe architecture, that is why it does not load in your configuration.
Zend stopped supporting the thread safe architecture when Microsoft also decided to implement its PHP engine with the fast-cgi architecture which means non-thread-safe.
Best regards,
Massi.

 

 

任务:XDebug安装

 

http://xdebug.org/download.php选择自己需要的xdebug版本。

下载并解压到自己需要的位置。

php.ini中加入

zend_extension_ts="你的php根目录/ext/php_xdebug.dll"

如果不行改用

zend_extension="你的php根目录/ext/php_xdebug.dll"

然后重启apache通过phpinfo()输出并查找xdebug是否被成功加载。

问题:XDebug无法进入断点

php.ini中加入

;开启自动跟踪

xdebug.auto_trace = On

;开启异常跟踪

xdebug.show_exception_trace = On

;开启远程调试自动启动

xdebug.remote_autostart = On

;开启远程调试

xdebug.remote_enable = On

;收集变量

xdebug.collect_vars = On

;收集返回值

xdebug.collect_return = On

;收集参数

xdebug.collect_params = On

xdebug.trace_output_dir="e:/xampp/temp"

xdebug.profiler_enable=On

xdebug.profiler_output_dir=" e:/xampp/temp"

 

xdebug.remote_host=localhost

xdebug.remote_port=9000

xdebug.remote_handler=dbgp

 

最后,记得重启apache

摘自:

http://www.cnblogs.com/yaksea/archive/2011/08/26/2154154.html

2013年1月23日星期三

【转】用jake打包js项目文件

转载自 http://ssup.kuantu.com/ 

你的Js项目下有一堆js文件需要打包?还是说你一直都在一个js文件里写所有的项目class?

Jake是为了解决上面的问题而诞生的。 

基于下面两个前提,jake是打包js的神器。 

1开发时把不同功能模块的class写到不同的js文件里更好。 
2用户访问网站时,js文件数越少越好 


获取jake: http://github.com/jcoglan/jake 

jake根据YAML文件打包(字符串拼接、优化压缩)Js文件。此外,他还允许用ERB在代码中产生代码,最后,他还可以在打包结束后做一些文件复制删除之类的批处理。 

安装 

sudo gem install jake 

使用说明 

在项目根目录下创建一个jake.yml文件,基本的配置如下: 


--- 
source_directory: source 
build_directory: build 

layout: together 

header: COPYRIGHT 

builds: 
src: 
packer: false 
min: 
shrink_vars: true 
private: true 

packages: 
[ 下面详细描述 ] 

"source_directory" 是相对jake.yml,你的源码的所在地,“build_directory”则是所有打包后的文件放置的地方。 

"layout"描述打包后的文件是都输出到同一个文件夹还是目录的放置:"together"(build/foo-src.js 和 build/foo-min.js) / "apart"(build/src/foo.js 和 build/min/foo.js.) 

"header" 文件头,例如copyright和版权信息 

“builds”:描述打包的方式,你可以有多个打包方式(src,min。。。名字自己取,随便) 

* packer: false - 是否压缩代码 
* shrink_vars: true - 压缩function内的局部变量名 
* private: true - 将私有变量替换成“_0, _1...” 
* base62: true - base-62压缩 
* suffix: false - 文件后缀, 你会得到 build/foo.js 而不是 build/foo-src.js, !!!只有一个build可以使用这个参数 

“packages”:不同的builds需要打包哪些源代码。“.js”扩展名不需要写 

选项说明 
* files - 打包哪些文件 
* extends -从其他package继承配置 
* directory - 指定从“source_directory”下的某个目录查找源代码 
* header - 文件头信息,可以覆盖根目录的文件头 
* packer - 可以覆盖根目录的packer配置 
* meta - 用户自定义的event 

例子 

packages: 
foo_dist: foo 

bar: 
- bar1 
- bar2 

sub/whizz: 
extends: foo_dist 
directory: path 
header: CUSTOM_HEADER 
files: 
- file1 
- file2 

last: 
packer: 
private: false 
meta: 
requires: 
- jQuery 
- GMap2 
files: 
- one_file 
- another_file 

打包结果如下 

- build/ 
- sub/ 
- whizz.js 
- bar.js 
- foo_dist.js 
- last.js 
- source/ 
- path/ 
- CUSTOM_HEADER 
- file1.js 
- file2.js 
- another_file.js 
- bar1.js 
- bar2.js 
- foo.js 
- one_file.js 
- COPYRIGHT 
- jake.yml 


使用ERB功能,需要创建一个jakefile文件。 

在源代码中使用ERB的例子 

MyJavaScriptLib.VERSION = "<%= version %>-<%= build %>"; 

jakefile例子 

jake_helper :version do 
# extract version number from svn, git, whatever 
# e.g. return '1.0' 
end 

结果: 

MyJavaScriptLib.VERSION = "1.0-src"; // or "1.0-min" for the 'min' build 

Event hooks 

两个事件: 

file_created 新的build文件创建时触发 

build_complete 在build完成后触发 

例子: 

$register = {} 

jake_hook :file_created do |build, pkg, build_type, path| 
$register[path] = pkg.meta 
end 

jake_hook :build_complete do |build| 
FileUtils.cp 'README', build.build_directory + '/README' 
# generate code from $register 
end