手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

yii CActiveRecord 中的一点小注意事项

首页 > PHP >

纯笔记,在使用ActiveRecord的时候一点注意事项。
本来在处理缓存的时候想对一些数据做强制缓存的,但结果预想的目标和我不一样。
我的$cachekey = md5(serialize($model).$parameter);
然后在调用的时候发现$model对象中的一些信息都消失了。起初以为参数没有传递,但测试了一下之后发现全部正常,那问题出在哪里呢?
再一步步的调试,发现出在serialize后对象就变了。于是看了一下CActiveRecord的源码,果然发现了源码中有定义__sleep(),纠结啊。
看来以后要注意一下,不能随便把model给序列化了。




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: cactiverecord, __sleep, serialize

« 上一篇 | 下一篇 »

只显示10条记录相关文章

PHP 序列化(serialize)格式详解 (浏览: 27220, 评论: 1)
关于序列化javascript (浏览: 14498, 评论: 0)
hprose使用中的一個問題 (浏览: 13931, 评论: 1)

1条记录访客评论

这个当年使用Kohana 3的时候,就遇到了。当时为了处理订单状态的元数据变化,直接将Model序列化后入库。结果比对的时候怎么都不对。查阅了半天,终于发现了serialize、unserialize与__sleep()和__wakeup()的关系。当时真的搞得快要崩溃了。

Post by BreeStealth on 2012, January 7, 10:18 AM 引用此文发表评论 #1


发表评论

评论内容 (必填):