Yii学习(二)

刚开了个头,就被一个新项目打断了,现在继续学习。

一堆继承之后,WebApplication对象终于开始实例化了。实例化实际是在CApplication中定义的.

实例化过程

1.首先进行了Yii::setApplication().这个方法主要是为了确保Application是一个单例。这里将CWebApplication对象传入Yii对象的一个静态的成员变量。

2.设置根目录。由于我们在构造函数调用时,并未传入任何配置,所以将使用默认的配置“protected”.“protected”字符经过realpath的处理后指向hello world下的protected目录。之后又对application webroot ext三个别名赋值该路径。

3.preinit.这个主要用于继承类在实例化前进行一些其他的处理和扩展。不过我们的CWebApplication并没有进行补充。

4.initSystemHandlers。初始化异常和错误处理句柄的autoloader

5.registerCoreComponents.注册核心组件。将父类CApplication中的核心注册之后,CWebApplication本身注册了session、assetManager、user、themeManager、authManager、clientScript五个组件。从名字上也基本能看出各个组件的功能。注册组件是CModule中的setComponents实现的,实现过程是将这些组件名作为键值,组件的类名及路径写入value,存储在$_componentConfig中。

6.configure.根据传入的参数进行一些配置。本例中无配置。在函数体中可以看出,config的键名是对象的一个成员变量,值作为该变量值。可配置的程度较大。

7.attachBehaviors.根据参数配置创建若干个继承自IBehavior的behavior对象作为组件。本例中没有配置,暂不深究

8.preloadComponents.预加载组件。由于在之前的初始化过程中并未对$this->preload进行配置,所以没有什么组件需要预加载的了。

9.init.经过了这些个预处理和配置之后,终于看到了init了

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值