stdClass:__set_state()

以前用PHP做数据缓存的时候一直是将数据序列化(serialize)后存入文件,取出时再反序列化(unserialize),这样做除了效率低点没有其他问题。读取文件再解析,当然不如直接include来的快,这时候就要求缓存是以PHP代码的形式存储的,这里可以用到PHP的 var_export 函数,其返回的代码可以直接存储。这个方法貌似不错,但问题也来了:

Fatal errorCall to undefined method stdClass::__set_state() in xxx

__set_state()是PHP 5.1引入的一个魔术函数,接受一个数组作为参数,主要用在var_export的时候进行递归处理。可是使用的前提是得先定义啊~ 我习惯的数据存储方式都是用的stdClass,ezSQL默认从数据库取出来的数据结构也是以stdClass形式进行存储的……这下麻烦大了,stdClass本身是不存在__set_state()这个静态方法的……没辙了……只好改为数组……唉……

今天的牢骚没有结论,导出对象有除了序列化有没有更理想的方法呢?还是我真的就只能做数组的缓存了?

ps:有人已经向PHP提出申请了,哈哈~
http://aspn.activestate.com/ASPN/Mail/Message/php-dev/3713102

晒晒我的Blog后台

很多朋友问我WordPress标题转换成图片的插件是什么,其实我用的根本就不是WordPress,所以我也不知道上哪去找这个插件。我将标题转换成图片的目的只有一个,就是让标题的中英文混合排版看起来更美观。另外的话,字体也不是微软雅黑,而是LINUX下面的一款开源字体。

终于开始加班了,时间不多,上海的天气也格外热。我不是商人,对自己的产品总是处在犹豫不决之中,一改再改,看来要推出某样东西真不容易,哪怕是一个小小的脚本。

现在晒晒我的Blog后台,开发完成到现在已经蛮久了,没有怎么动过,后台风格借鉴WordPress,设计思路还是蛮中文化的。看到的朋友请拍砖。

控制面板
控制面板

阅读全文 »

吊儿郎当,零零碎碎

1、工作&上班

工作算是稳定下来了,上班已经将近一个月。每天又开始定闹钟,挤公交,虽然上班时还是呵欠接连不断……失业太久,还真有点缓不过来。

招人进去的主管让我谈谈什么是“积极主动”,呵呵,其实嘛,工作只是副业,最重要的还是我自己的理想和追去。所以呢,谈不上积极主动,也不求上进和升职,只是自己的技术绝对不能退步。

2、同学&朋友

同学从河南赶过来上海看演唱会,居然还是站票,对摇滚的热情近似我对电脑的热情,实在是佩服……有激情可真好。人问我,一个住着会不会有特别空虚寂寞的时候,想想,其实我呢,倒是希望安静,有网线就行,一个人躲在安静的角落里敲着键盘,偶尔看看连续剧,这样的生活挺好。

我大概有点疯了。

3、渴望&追求

我也渴望成功,只是我对自己代码的进度不甚满意,加上涉及美工一方面的东西就更是烦恼了。唉,似乎真的没有目标了。

代码维护是个很大的问题,没有免费的SVN服务器,Google Project Hosting实在太慢,而且只是提供给开源项目,所以就一直自己折腾。相当麻烦。

现在所在公司的代码也不咋的,顺便鄙视下。

最近的几个小问题

1、编译Subversion遇到的问题

configureerrorAPR-UTIL was installed independentlyit wont be
                        possible to 
use the specified Berkeley DB: /usr/local/BerkeleyDB.4.4

网上的说法很多,费劲一番周折还是没有解决,最终解决办法,使用SVN自带的依赖包,即同时下载这两个文件:

-rw-r--r--  1 leerais leerais  6604640 2008-07-05 18:20 subversion-1.5.0.tar.gz
-rw-r--r--  1 leerais leerais  3257964 2008-07-05 19:11 subversion-deps-1.5.0.tar.gz

然后解压到一块就行了,至于编译选项,就不要舍近而求远了,不用指定 arp、arp-util等选项,直接编译就行。屡试不爽啊!

SVN源文件链接:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&expandFolder=74

2、MySQL远程连接遇到的问题

leerais@debian:~$ mysql -h 192.168.2.2 -u leerais -p
Enter password

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet'system error0

具体原因我没找着,知其然而不知其所以然,解决办法是在你的MySQL配置文件,一般是 /etc/my.cnf 里面加入下面这一行:

skip-name-resolve

以下是我的部分配置文件:

# The MySQL server
[mysqld]
port        3306
socket      
= /tmp/mysql.sock
skip
-locking
skip
-name-resolve
key_buffer 
16M
max_allowed_packet 
1M
table_cache 
64
sort_buffer_size 
512K
net_buffer_length 
8K
read_buffer_size 
256K
read_rnd_buffer_size 
512K
myisam_sort_buffer_size 
8M

阿贾克斯灭鼠公司

Ajax 发音参考:

Ajax