YII千万级PV架构经验分享--俯瞰篇--YII扩展演变(2)

来源:互联网 发布:ubuntu 网络调试工具 编辑:程序博客网 时间:2024/05/05 20:19

网上盗了份yii整体执行流程图,嘿,太复杂了,看了就头疼,扫一眼就好了,毕竟网上挺火了,越复杂,越牛逼嘛。不过还是建议看下,万一有用呢?

 我就不看了,来张简单的,Yii 应用的静态结构

不要跟我说这个图看不懂,最简单的只有,index.php然后到controller而已,多输出几个hello word,就会了。不行看YII管方文档,那上面说的还比较详细。来看下本少画了半个小时的图吧,不懂的可以问噢,我详细的介绍一下。

Yii 预留扩展:

举几个例子来说明下为什么要这么浪费精力做这些事吧。建一个目录也是很麻烦死人的。

1.如果你是小型网站,后台系统,当我没说,你可以pass不看了。如果是高性能却数据量少,可以自己建个MVC。如果没有时间开发,直接用YAF,CI就好了。

2. 你继承的是CActivereCord,没有继承自己定义的 JActivereCord,或者其它。以后分库分表这些业务到时候你往哪里面实现?改掉项止所有继承关系,一下正则,然后重新测试,办法也不错。可是挺二的。

3.常用扩展封装,走配置的噢,所有组件全部是YII::app()->xxx .多例模式,也可以看作单例吧,这样的好处,组合模式,开始时,配置cache缓存用的是redis,最后觉得不爽,直接在配置里面把cache组件改成更高性能的apc,就OK了。不用动业务代码。当然,如果你非说,我的配置文件都是一键生成的文件缓存的,不走这个,我也没办法,业务无变,则不用解藕的。

4 安全是封装类是继承Ccontroller,反正多的是攻击,如果网站值钱了,不攻击你攻击谁?你到时侯也可以像CActivereCord一样,正则手法。呵

 

Yii 预留扩展要求:

1 扩展业务竟最大可能,不影响具体业务。具个例子,比如配置参数UserType,开始用UserType::model()->findAll(),UserType::model()->findByPk(id), 那么,用缓存apc也一样的。生成配置文件缓存,也不要影响具体调用方法。相同方法。

2 组件全部通过配置文件调用,这个自己把握吧。呵,不变的是不需要的,那也不是组件了,相当于一个函数而已,组件是可配置的N种可能。

3 在纸上画画和写代码哪个快?那个舒服,节省时间?肯定是纸上画画了,所以过渡设计是应该的。也不需要多少时间。画着画着,速度也就越来越快了。

0 0