Yii框架实现上的2个小技巧

1. magic函数和配置项

在main.php中可以定义import,modules,components等配置项,这些配置项用来设置webapp的属性。

但是从app类代码里面是找不到这些属性的。这些属性是通过__set魔法函数以及调用set+$name的方法(如CModule类中的setComponents)来实现的。


2.预加载组件

在定义了compents后,你可能会想当然的认为他们被框架自动加载了。但实际情况并非如此简单。

比如你自定义了一个错误处理类MyErrHandler,里面定义了logErr方法。然后放在main.php components列表中,然后你在程序启动时试图使用yii::app()->getErrorHandler()->logErr()来处理错误。那你很可能会遇到错误:logErr未定义。

因为yii使用了延迟加载的策略。这里你能得到会是yii内置的CErrorHandler,而不是你设想中的MyErrHandler,MyErrHandler并没有被真正加载。

你需要把它放到preload中去才能够正确使用。


iefreer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值