Jeen
- Jeen 回答了问题 如何不允许同一账号多处登录
一个简单的处理思路就是, 登录的时候 以用户ID为key 设置一个缓存,值可以为随机字符串,也可以根据时间等信息生成。
在处理请求前,先比对 缓存的值 是否一致,如果不一致则说明 会话已经失效 或帐号被其它人登录了。
也可以参考下这个问题
http://www.yiichina.com/question/3350
- Jeen 回答了问题 复杂条件该怎么不用sql拼接的办法
$someModel::find()->where([ 'AND', ['a' => 1], [ 'OR', ['b' => 2], ['c' => 3], [ 'OR', [ 'AND', ['d' => 4], ['e' => 5], ], [ 'AND', ['like', 'f', '6'], ['g' => 7], ] ], ] ])->asArray()->all();
如上, 至于 某些条件不存在 的时候,按层级控制数组元素就行了
- Jeen 回答了问题 Yii2 防止用户重复登录
额,建议确认一下: 会话断开后 自动登录的sessionid 是否发生了变化
看了下你参考的文章的原理, 它是利用会话session中存储的token,与数据库中对应用户的token进行比对,进而判定会话是否有效。
如果 sessionid 发生了变化,就必然需要重新输入用户名密码进行登录了。另外, 如果要解决同一个会话过期后 自动登录依然可以直接用,建议 在比对用的token中只存储 IP UserAgent 等不会高频变化的信息。
- Jeen 回答了问题 ActiveForm post 请求
把设置放到 options 数组中
如:
ActiveForm::begin([ 'options' => ['method'=>'post'] ]);
- Jeen 回答了问题 composer安装任何扩展报错
composer global require "fxp/composer-asset-plugin:^1.2.0"
先装下这个,再试试
- Jeen 回答了问题 yii2 rbac设置的父级路由怎么才能不匹配到
菜单是自定义设置的么?
如果是的话,不要用路由 或者 “#”
设置为 javascript:;
不行的话 就改改 menu 生成的源码
- Jeen 回答了问题 php内存分配怎么理解
不明觉历
1、既然有出处,好歹分享一下出处文章的链接吧(虽然搜索很好用,不过还是需要成本的)
2、如果真的想理解php的内存分配,建议还是学学C相关的东西看看源码,或者请教下有相关经验的人,了解的会更透彻一些。不过既然写了回答,我也简单说点个人看法。当然也只是根据原文的意思揣摩,没有什么准确的依据。
依照原文标题“请手动释放你的资源”,再围绕你节选的这段文字。php在执行的时候会申请两块内存(会自动释放一大块+一小块),当然这个“自动释放”是发生在执行结束的时候。然后就有了“后续的逻辑如果请求内存”,发现之前申请的大块内存已经被用完(可能包含了很多已经无效的资源,但是没有被手动释放),就会再次向操作系统申请内存。
所以前后文所提到的重新申请内存,都是指大块内存,而不是保留下来的那块小内存,小内存是用于做引用计数或者说内存管理用的。也就是说,小块内存是给系统用的,而不是给业务逻辑代码自身用的,当进程执行结束之后会一并释放。
进而可以知道,就是因为很多无效资源没有及时的释放,从而导致了需要多次申请内存,增加了系统开销。也就印证了文章标题“请手动释放你的资源”。还有一点想说的是,这个文章也比较老了,如果希望真正了解PHP内存管理的话,建议针对文章中提到的“垃圾回收”做一下扩展阅读。
另外个人感觉80%做php的都不知道这个内存分配究竟是啥,当然也包括我
这80%的人里面可能90%都不关心这个问题 哈哈