HICK 者,乡巴佬也

xdebug 使用 tips

Posted in: PHP — Hick @ 2009/03/04 23:55:12 Comments (2)

平时常用 xdebug 追踪 php 的错误信æ¯(stack trace),还有一个所谓的 profiling ,就是统计并ä¿å­˜å‡½æ•°(包括 php 函数和自定义函数)的执行时间,内存消耗以åŠå‚数等情况都å¯ä»¥è®°å½•,但是开销更大,一般ä¸è¦è®°å½• 。

设置如下

——————–
zend_extension = /usr/local/php/extensions/xdebug.so
xdebug.default_enable = Off
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = “/data/xdebug/”
xdebug.profiler_output_name=trace.%R.txt
xdebug.profiler_enable = Off
——————–

这个设置关掉了 stack trace ,profiling 功能,åªåœ¨ http 请求中有 XDEBUG_PROFILE (GET/POST/COOKIE) 的时候,æ‰ç»Ÿè®¡å‡½æ•°æ‰§è¡Œæƒ…况并ä¿å­˜æˆæ–‡ä»¶ã€‚å¦‚æžœä¸ disable 上é¢çš„功能,è¿è¥æœåŠ¡å™¨å¾ˆå®¹æ˜“æŒ‚æŽ‰ã€‚ä»¥ä¸Šè®¾ç½®ä»¥åŽï¼Œ http 进程大概需è¦å¤šæ¶ˆè€— 1-2M 内存,CPU 消耗也ä¸å¤§ã€‚平时没有必è¦åŠ è½½ xdebugï¼Œæ—¶ä¸æ—¶åŽ»è§‚å¯Ÿä¸‹ï¼Œéšæœºç»™å‡ ä¸ªç”¨æˆ·çš„ COOKIE 里加个 XDEBUG_PROFILE 是很好的习惯。

关于生æˆçš„ log 文件,windows 下以å‰ä¸€èˆ¬ç”¨ wincachegrind æ¥çœ‹ï¼Œä½†æ˜¯ xdebug2 æŸä¸ªç‰ˆæœ¬ä»¥åŽï¼Œä¿®æ”¹äº†ç”Ÿæˆæ–‡ä»¶çš„æ—¶é—´å•ä½ï¼Œç›´æŽ¥ç”¨ wincachegrind 看时间会少一个数é‡çº§ã€‚建议用 http://code.google.com/p/webgrind/ æ¥çœ‹ã€‚

其实还有一个想法,完全å¯ä»¥å€Ÿç”¨ webgrind 的相关代ç ï¼Œå†™ä¸€ä¸ªè„šæœ¬åˆ†æžæ‰§è¡Œæ—¶é—´æ»¡è¶³ä¸€å®šè¦æ±‚的请求的情况。需è¦çš„è¯ï¼Œå®‰æŽ’一个 crontab, 定时记录下 profiling log , 定时分æžä¸‹ç¨‹åºå“ªäº›åœ°æ–¹æ‰§è¡Œæ¯”较慢。

Smarty 出新版了: Smarty 3

Posted in: PHP — Hick @ 2008/10/25 23:41:20 Comments (1)

有些æ„外,刚æ‰è®¿é—® http://smarty.php.net å‘现æç¤ºå·²ç»è½¬ç§»äº†ã€‚å°è±¡ä¸­ smarty 有好几年没怎么更新了,一直给人很臃肿的感觉。ä¸è¿‡å¾ˆå¤šæ—¶å€™ï¼Œè¿˜æ˜¯è§‰å¾— php 模æ¿é‡Œï¼Œç”¨å®ƒè¿˜æ˜¯æœ€çˆ½çš„。

刚看到 smarty 3.0 alpha 版本,目录结构有所å˜åŒ–, Smarty.class.php å‡è‚¥äº†ï¼Œä¸€ä¸ªæ•´ä½“æ€è·¯å°±æ˜¯å°½é‡åœ¨éœ€è¦çš„æ—¶å€™æ‰åŠ è½½ç›¸å…³æ–‡ä»¶ã€‚
支æŒå•例,还把 php 所谓的 “PHP TEMPLATES” (php 本身å¯çœ‹åšä¸€ä¸ªæ¨¡æ¿å¼•擎)引入,但是我还是讨厌 php 代ç ç›´æŽ¥å¤¹æ‚在 html 中的写法,很麻烦很别扭,除了模æ¿å†™æ³•相对简å•,使用 smarty çš„å¦å¤–一个作用是é™åˆ¶æ¨¡æ¿ä¸­çš„è¯­æ³•å¤æ‚度。现在å…许下é¢è¿™æ ·ï¼Œæœ‰äº›å感
$smarty->display('php:mytemplate.tpl');

也支æŒè¿™ç§è¯­æ³•:
$smarty->display('string:This is my template, {$foo}!');

感觉上没什么å˜åŒ–,正好一会拿去åšåŽ‹åŠ›æµ‹è¯•çœ‹ä¸‹è·Ÿè€ç‰ˆæœ¬æ˜¯å¦æœ‰æ€§èƒ½ä¸Šçš„æ”¹è¿›ã€‚更多æè¿°å‚è§ http://smarty-php.googlecode.com/svn/branches/Smarty3Alpha/README

smarty å®˜æ–¹æ–°åœ°å€ http://www.smarty.net/

网页截图

Posted in: PHP, Web å¼€å‘ — Hick @ 2007/07/14 15:30:23 Comments (0)

刚æ‰é€›åˆ°æŸæœ‹å‹çš„ blog å‘现æåˆ° GD 库中有一个有趣的功能:

PHP 5.2.2以上版本的 GD 库实现了两个截å±å‡½æ•° imagegrabscreen å’Œ imagegrabwindow ï¼Œåˆ†åˆ«ç”¨äºŽæˆªå–æ•´ä¸ªå±å¹•å’Œæˆªå–æŸä¸ªçª—å£ï¼ˆåŒ ALT+PrintScreen)的å±å¹•。

详情å‚è§ http://www.sofee.cn/blog/2007/07/12/83/

å‰ä¸ä¹…也接触过一个å¯ä»¥åœ¨ windows ä¸‹å‘½ä»¤è¡Œæˆªå–æŒ‡å®š URL 网页的程åºï¼š url2bmp 。除了å¯ä»¥é€šè¿‡å‘½ä»¤è¡Œæˆªå–这个å分ä¸é”™çš„特性,还å¯ä»¥å¾ˆå¥½çš„解决滚动æ¡é—®é¢˜ï¼Œè‡ªåŠ¨æ»šå±æˆªå–网页— — 这个功能在 snagit 等专业的抓å±è½¯ä»¶ä¸­éƒ½åšå¾—䏿˜¯å¾ˆå¥½ï¼Œç»å¸¸å‡ºçŽ°æ»šåŠ¨ä¸å®Œå…¨çš„æƒ…况。

(more…)

PHPUnit 3.1.2 has been released

Posted in: PHP — Hick @ 2007/07/07 15:54:52 Comments (0)

ä»€ä¹ˆæ•æ·ã€é‡æž„ã€æµ‹è¯•驱动开å‘ï¼ŒåŽŸæœ¬å¾ˆç†æƒ³ï¼Œä¹Ÿå¾ˆçŽ°å®žçš„ä¸œè¥¿ï¼Œåˆ°äº†ä¸€äº›ç‰¹å®šçš„å•†ä¸šçŽ¯å¢ƒæˆ–è€…ç¬¨è›‹æ‰‹é‡Œï¼Œå°±å¯èƒ½å˜æˆæˆ´é«˜å¸½å­çš„æ‰‹æ®µæˆ–者拖åŽé€€çš„垃圾ï¼ç®€å•çš„ä¸¾ä¾‹è¯´ï¼Œä¸€èˆ¬é‡æž„æ˜¯åœ¨æµ‹è¯•é©±åŠ¨å¼€å‘æˆ–者有å•元测试的情况下,å¦åˆ™é‡æž„的结果很å¯èƒ½å¸¦æ¥å¤§é‡çš„ bug ;而测试驱动开å‘,往往更适åˆâ€œå¢žé‡éœ€æ±‚â€ï¼Œå¹¶ä¸ä¸€å®šé€‚åˆâ€œå˜é‡éœ€æ±‚â€ï¼Œå¦‚果说需求或者接å£çš„䏿–­å˜åŒ–,造æˆç»å¸¸æ€§çš„大é‡é‡å†™æµ‹è¯•用例,那就必须考虑测试驱动开å‘çš„å¿…è¦æ€§ä»¥åŠå±‚次问题了。

å•å…ƒæµ‹è¯•ï¼Œä¹‹å‰æ–­æ–­ç»­ç»­çš„æŠ˜è…¾è¿‡å‡ å›žï¼ŒçŽ°åœ¨åˆé‡æ–°æ¡èµ·æ¥ :) PHP 里åšå•元测试,当然首选 PHPUnit 了,å‰å‡ å¤© 3.1.2 å‘布了;å¦å¤–一个选择是 SimpleTest ,接触ä¸å¤šï¼Œè²Œä¼¼è·Ÿä¸Šä¸ªå…¬å¸æŽ¥è§¦è¿‡çš„基于 Java çš„ Canoo 类似,更多的åå‘“验收测试â€ã€‚

(more…)

PHP Templates Engine

Posted in: PHP — Hick @ 2007/07/07 13:18:33 Comments (3)

PHP 里 Templates Engine ä¹‹äº‰ä¸€ç›´ä¸æ›¾ä¼‘åœã€‚当年模æ¿å¼•擎风行的时候,Smarty 䏿–­çš„膨胀而å˜å¾—è‡ƒè‚¿ï¼Œæœ€åˆæ˜¯è¢«è´¨ç–‘是å¦çœŸæ­£åˆ†ç¦»äº†ä¸šåŠ¡é€»è¾‘å’Œé¡µé¢è¡¨çŽ°ï¼ˆå¯ä»¥ç®€å•çš„ç†è§£ä¸º PHP å’Œ HTML/CSS)。继而ä¸å°‘ PHPer 回归到 PHP is a native template engine 的说法,认为 PHP 本身就是一个模æ¿å¼•擎— —支æŒåœ¨ HTML 嵌入代ç çš„è¯­è¨€æœ¬èº«éƒ½ç®—ä¸€ç§æ¨¡æ¿å¼•擎。

(more…)

Next Page »