在类中获得当前class名称

php 4.3以后新增了一个魔术常量__CLASS__,用来获得当前class名称。但是在下面的代码中,却不work。
class A {
function showclass() {
echo __CLASS__;

阅读全文(654字)

评论 (2)

PHP Namespaces FAQ

PHP Namespaces FAQ,适合没耐心仔细阅读完整README.namespaces的人来看.
Q. Why PHP needs namespaces?
A. Because long names like PEAR_Form_Loader_Validate_Table_Element_Validator_Exception are really tiresome.
Q. What is the main goal of the namespace implementation?

阅读全文(1299字)

评论 (2)

用memcache.php监测memcache的状况

最新的memcache pecl中,新增了一个memcache.php,这个php文件可以用来方便的查看memcache的状况,界面上与apc自带的apc.php风格一致。
如图:

应该算是最方便的监测memcache的办法了。

阅读全文(128字)

评论 (1)

hidef —— 进一步提高define的性能

用apc_define_constants可以提升批量define的性能,但是每个请求,都免不了进行 读cache -> 批量define 这样一个过程,因此,这也算不上提升define性能的终极手段。
在翻看apc的手册时,无意中看到有这么一小段介绍:
For a better-performing solution, try the » hidef extension from PECL.
这里提到了一个叫hidef的扩展,看说明上的意思,应该是可以通过ini文件来批量定义常量。

阅读全文(717字)

评论 (2)

用apc来提高define的性能

php下的define()性能是很烂的,速度慢,尤其是当一个程序中有大量的常量需要定义,这个情况尤为明显。而apc这个扩展不仅仅提供了php的opcode缓存,同样也可以提供一些基本的cache功能,在apc 3.0.0版本之后,它甚至可以缓存常量。
一个用apc批量定义常量的例子
<?php
$constants = array(

阅读全文(690字)

评论 (2)

我也试用YUI Uploader

早就知道YUI里面有Uploader这么一个上传组件,可以按住ctrl多选文件上传(就像flickr那样的上传),并且可以支持进度条,这样对用户来说是相当方便的。
由于YUI Uploader是利用javascript + flash实现的,所以用户的浏览器上只要有flash player就可以使用,也不需要额外安装别的插件了,这显然也是YUI Uploader的一大优势。
我的YUI Uploader试用之旅

阅读全文(1128字)

评论 (3)

查看xdebug profile文件的几个程序

在优化php代码执行效率过程中,有个好办法是利用xdebug生成profile文件,然后查看整个程序的瓶颈在哪里。现在xdebug profile的查看程序有好几个,在这里罗列一下.
Wincachegrind
Wincachegrind是windows下的profile查看程序,使用起来感觉还不错,profile文件太大的话偶尔会崩溃。
今天在高春辉的博客上看到这些:

阅读全文(1264字)

评论 (1)

关于PEAR的DB和MDB2方法对比

在从前的php4时代,我很喜欢使用pear的DB库,使用非常方便。但是现在pear官方站已经建议我们采用MDB2来代替它,虽然MDB2的前身可能有一些DB的影子,但是使用方法还是有一些不同,这些天一边使用,一边做些笔记。

MDB2

阅读全文(265字)

评论

memcache的几个旁支

最近留意了一下,memcache出现了几个旁支项目,很有一点意思,也许在日后的项目中可以用的上。
memcached-tag
给memcache增加了tag功能,新增的命令如下:

阅读全文(1679字)

评论

如何避免使用php的require_once

我们知道,在php中使用require_once/include_once虽然方便,但是代价昂贵,据测试数据来看,require_once比require慢3-4倍,所以在php开发中,我们应该尽量使用require/include。
列一下俺常用的避免require/include的方法。
使用__autoload
php5可以使用__autoload来避免require,用的好的话,代码里头甚至看不到几个require,实在是安逸啊。测试结果表明,使用__autoload之后的new Foo; 比 require_once ‘foo.php’; new Foo; 大概要快3倍左右。

阅读全文(675字)

评论 (9)