我有兴趣使用名为Yii::app()->params
的{{1}}扩展程序将一些系统参数加载到数据库的CActiveRecord
数组中。
不幸的是我在网上找不到太多建议,但我相信我可以在SiteSetting
SiteSetting
中添加一个方法并添加设置...
loadSiteSettingsToAppParams
...到配置。
我想知道我是否只能将'onBeginRequest'=>array('SiteSetting', 'loadSiteSettingsToAppParams')
添加到onBeginRequest
类中某处的Yii::app()
(以保持我的代码模块化)以及这是否是一种明智的方法。
提前致谢。
答案 0 :(得分:2)
现在重新阅读您的问题,我会尝试提供答案。
问题"我想知道我是否只能将此onBeginRequest
添加到Yii::app()
类中某处的SiteSetting
(以保持我的代码模块化)& #34;答案是:你不仅限于一个班级。您可以(理论上)将其放在应用程序的任何位置以及config.php
文件中。
至于它是否是一种明智的方法,它取决于从数据库请求这些设置所需的时间,以及您是否准备将该时间添加到您的HttpRequest响应时间。在每次HttpRequest之前都会触发onBeforeRequest
,如果loadSiteSettingsToAppParams
方法耗费大量时间,那么您需要将该时间添加到HttpRequest响应时间。
我建议您在登录后获取这些设置,然后仅在更改时更新它们(更新设置)。这样,您可以将loadSiteSettingsToAppParams
类中的UserIdentity
拨打电话,并在成功登录后进行调用。
这就是我如何做到这一点。
希望我帮助过。