yii提供了完善的角色权限控制,但是那个东西比较庞大,我就希望三级权限即可,游客可以看前台,普通用户和管理员可以登录前台并管理内容,后台只有管理员可登录。并且没有太多的权限需要细分,可以后台可以使用全局的一个权限控制,直接判断是否是管理员即可。
用yii的同学都知道,yiic自动生成的项目中,使用了accessControl这么一个filter,其自动调用Controller的accessRules函数,生成的函数内容数组中,有一个很明显的就是其有roles属性。
我就想,我是否能直接写一个accessRules函数,然后直接只有roles=>admin才是allow操作呢?可是roles又是如何判断的呢?带着问题一路查看源码,在CAccessRule里面有这么一大段。大致是对每条rule会先调用isUserAllowed,这里面又会调用isUserMatched和isRoleMatched,分别对user和role进行检查。
阅读全部内容…
Tags: php , yii
yhustc On
Web开发 @ 2011-06-27 15:06:58 |
没有评论
Yaf是Yet another Framework的意思,知名博客风雪之隅 的作品。通过PHP扩展机制,实现了URL路由、业务逻辑与视图分离等功能。预计下一版加入ORM。
性能也是非常的不错,作者做了一个测试。倒不是跟其他的PHP框架对比,而是跟原生PHP的面向对象编程对比,我们看看对比的文件。
原生PHP的代码:
阅读全部内容…
Tags: php
yhustc On
Web开发 @ 2011-05-13 12:35:35 |
1条评论
开始在本地调试没有发现这个问题,新系统上线后发现YII报500错误。说是layout中有个变量没有设置,可是我明明在render函数里面设置了这个变量。后来查看代码才知道,原来layout中要用变量需要用this指针的pull形式。具体怎么回事看代码就很明了了。输出的layout仅仅是把局部模板作为content值传入外部模板。并没有做render推送的变量的合并。
阅读全部内容…
Tags: php , yii
yhustc On
Web开发 @ 2011-05-08 14:05:46 |
没有评论
做个备份,慢慢更新
1、他的验证码类不好用。配合CActiveForm的话,每次验证都会被自动更换session里面的验证码,导致每次验证都是错误的。除非你把testLimit设置的不等于1,让同一验证码能持续访问几次后再更新session值。但是这个就不能防灌水机了,因为可以配合人肉识别验证码。所以我自己实现了一个widget。
2、如何结合使用event和behavior,在guide手册上面没有说。测试了一下,首先为类绑定行为,然后添加事件时是关联的行为函数,在进行event触发的时候无法通过CComponent.php 567行“else if(method_exists($object,$method))”。因为能调用行为的相关方法,是因为有魔术方法,但是method_exists检查是无法通过的。也就是除非你用CActiveRecordBehavior实现相关model操作的event处理,普通情况下event没法与behavior结合使用。
阅读全部内容…
Tags: php , yii
yhustc On
Web开发 @ 2011-05-07 17:36:56 |
2条评论
比较早的一篇文章了,贴出来大家学习一下。前一部分基本上搜索一下架构相关的知识,都差不多。后面的部分还是有很多启发意义的,需要好好的学习一下。而至于他们说的消息队列,有个简单一点的例子,大家可以看看《编程之美》这本书,关于生产消费者模式的一个题目。这边不断生产新的需要处理的任务,那边不断的提取任务并处理。据说这个模式使得微软的outlook处理效率提高了200倍。
我贴的这个跟其他人的不一样,可不是直接COPY,有视频哦。当然,文字的记录也还是要的。但是全文太长,博客列表页我就只放视频了,点击查看全文,后面部分是文字记录。
P.S. 其实我觉得国内的互联网巨头,是否也可以分享一下一些成果。比如Thrift的RPC框架,就是facebook贡献给apache基金会的,真的很好用。自己写的一个麻烦而且不完善,用facebook的,省心而且质量有保障。在中国,如果IT巨头都不带头,每个程序员都搞自己的东西,累了还没有效果。开发出好程序需要站在巨人的肩膀上,中国的IT界,需要有巨人愿意站出来才行啊。
阅读全部内容…
Tags:
yhustc On
Web开发 @ 2011-04-24 16:13:53 |
没有评论
橘子有个网站,访问量大约每天500万PV,为了怕被屏蔽,需要对一系列敏感词进行过滤(超过1200个词),然后才输出内容给用户。
替换给定关键词的功能,每种编程语言都有,PHP的最强大。基于正则匹配替换的大家都有,就不提了。基于精确匹配的字符串替换,PHP的str_replace函数可以根据给定的数组,一次函数调用对多关键词进行匹配。自然橘子用的也是这个咯(如果使用的是for i < 1200 顺序的循环,基本系统效率可以无视了 )。可是现在问题出现了:系统负载非常高,而且是持续的高,晚上10点的高峰期CPU一直100%的满负荷运行。
要优化性能,就需要一步步的分析瓶颈在什么地方:
阅读全部内容…
Tags: AC自动机 , twisted
yhustc On
Web开发 @ 2011-04-18 01:05:42 |
3条评论
使用方法很简单,IE用户在下面的链接上右键选择添加到收藏夹,firefox用户直接将链接拖动到书签栏就行了
tineye搜索
然后打开任意网页,比如g.cn,比如现在要搜索与google的logo相似的图片,在收藏夹里点击这个tineye的收藏就行了,此时JS文件已经加载到该网页并且处理过所有页面中的图片了。把鼠标移动google的logo上会有个黑框,然后title也变成了“Search in tineye”,左键单击图片,就会打开新窗口来搜索图片。
测试过了,firefox,opera,ie,webkit都能用。以后看到美女图要找套图就方便了,哈,直接用这个JS处理一下然后点击就行了。
Tags: tineye , 插件
yhustc On
Web开发 @ 2009-11-04 21:47:11 |
2条评论
写在转载前面的话
要学好一门技术,网上有很多免费的资源,搜刮一点确实能入门。但是个人感觉要学好,还是得看书。毕竟书是作者在自己学习的基础上加上一些个人心得或技巧编著而成,有一些东西也许网上查不到或者不详细,但是书上是有写的。所以真想把一门技术学好,买大于等于一本的经典教程是很有必要的。
但是国内图书市场的情况我想大家都清楚,太过于功利与浮躁。我借阅过很多书,虽然中文作者写出来的确实有很多不错的书籍,但是还有大量的估计是为了占市场赶工出来的粗糙货,比如是截图与源码对不上一类的错误一堆。再比如两人合著,前一页还是中文版visual studio,一翻页成英文版的了。也许有人觉得这些事情没什么大不了,但是我想下面这篇转载的作者说的有道理,对老鸟也许啥都不是,但对新手这就是一个坑。
阅读全部内容…
Tags:
yhustc On
Web开发 @ 2009-09-23 10:08:24 |
2条评论
flex写着写着,就越写越大了,多个view state,大量的处理函数,http service等也好几个,总之是越来越大呀,于是就想用框架了。关于flex框架的介绍,可以看看天地会的wiki上的一篇文章:选择一个Flex框架
我选的是carngorm,主要是因为手头借了一本flex的书,最后一章就是介绍carngorm的使用,并有一个详细的开发实例,学起来比较方便。
怎么开发的我就不讲了吧,大家自己去找资料学习。本文主要是记录一个问题,在application中需要定义一个service locator,还要定义一个controller,但是我发现这两个变量在整个程序中并没有引用呀。一开始一直不明白写这里是干嘛的。
阅读全部内容…
Tags: carngorm , flex
yhustc On
Web开发 @ 2009-08-17 14:55:30 |
2条评论
这个标题其实也不准确,大致意思是说:repeatCount是Effect基类的成员,怎么在自己定义的effect中实现repeat的效果的问题。
关于如何自定义effect,网上有文章,这里就不啰嗦了,引用一篇就写得不错的博文,有代码有演示,可以跟着学习一下:flex 自定义TweenEffect方法
如果想了解得更详细一点,可以看看Flex Builder 3\sdks\3.2.0\frameworks\projects\framework\src\mx\effects目录下的几个文件:Effect.as EffectInstance.as effectClasses\TweenEffectInstance.as。这几个文件是基类,里面的注释非常详细,包括自己继承的话需要Override哪些函数都有说明,然后就可以找Move.as和MoveInstance.as学习一下,参考他的自己实现一下就行了。
阅读全部内容…
Tags: flex
yhustc On
Web开发 @ 2009-08-16 13:07:56 |
9条评论
翻页:
最新评论