2015-08-06 19:18

引用来自“南湖船老大”的评论

在所有大型的PHP框架里,YII性能是最好的。
没用过2,但是1的耦合性太高,设计不如其它框架好

引用来自“撒哈拉的小猫”的评论

性能可不是由框架决定的
影响还是很明显的,5%以上的影响就已经很大了。
2015-08-06 17:58
必须是Yii
建议用2,加入的命名空间功能很实用。
2015-08-06 13:36
比较喜欢,一直在用。
2015-08-06 13:23
基于数据库实现会话:
online(sessid,session,version)
sessid是用户ID.
session存储用户会话,内容是会话数组serialize序列化后的串.
version是版本号,用于实现乐观锁.

function my_session_get() { return unserialize($session); }
function my_session_set() { serialize($session); }
$session = my_session_get();
$session['ip'] = $_SERVER['REMOTE_ADDR'];
my_session_set($session);

my_session_set时用版本号version乐观锁控制session字段的同步:
SELECT * FROM online WHERE sessid=1;
UPDATE online SET session=$session,version=last_version+1 WHERE id=1 AND version=last_version;
如果没有更新记录,则返回操作失败的提示.

对比PHP内置的会话机制使用的是悲观锁,session_start()开启的是一个对sess_ID会话文件的写保护锁,
其他页面的操作同一个sess_ID会话文件的session_start()将会被阻塞.
这样的SESSION锁机制就避免了下面的情况:
A页面和B页面读取了相同的一份会话信息.
A页面修改并写入了会话变量a.
B页面随后也修改并写入了会话变量b.
这时B页面会覆盖了之前A页面写入的会话变量a.

这种情况一般很少发生,所以基于数据库实现的会话机制使用乐观锁,应该也是合理的.
2015-08-06 13:15
在所有大型的PHP框架里,YII性能是最好的。
没用过2,但是1的耦合性太高,设计不如其它框架好
回复 @
{{emojiItem.symbol}}
返回顶部
顶部