配置参数的问题 [ 2.0 版本 ]
YII2里有很多变量,如数据库配置信息,是否开启URL等
想布局一个独立的文件,在这个文件里配置上上面的变量,在后台可以随时修改。
请问这个文件要如何布局,在哪里加载?
共 1 个回答
-
zone_g@163.com 回答于 2016-12-15 10:28 举报
依我拙见,可以在应用的发布目录下生成config文件夹,在里面(通过后台动态生成)生成配置
然后在入口文件中判断此文件中是否有需要重新载入的配置文件,如果存在依次载入,并合并到$config变量中,记得要在默认变量之后,这样新的动态配置会覆盖掉默认(手动)的应用配置
自定义的配置文件书写格式可自由,注意不要把默认的$config变量全部覆盖掉就行,引入自定义配置文件后与默认配置文件的$config合并数组,应该是不会出现这个问题吧。
(这一种在入口文件应该不能直接访问数据库查询配置参数,所以是后台配置入库后生成的php文件)第二个思路:
可以生成在应用程序目录中,不被web所访问的目录,config文件夹或者其他地方,只要能引用到就行(生成文件或者数据库查询,只要能获取参数就行),然后创建总的应用控制器继承yii的controller,在自定义的控制器类中在重新加载你的动态配置,具体的加载方法还没看,可以看看yii中的核心控制器有没有对应的方法第三种思路:
如果不是大量配置,或者就算是大量配置,这个方法可能使用起来有点麻烦,就是在每个需要使用动态配置的地方(获取配置在文件或者数据库)利用yii的方法给操作重新定义配置,
例如你说的:urlManager动态控制\Yii::$app->urlManager->enablePrettyUrl = true/false;
这句话控制当前操作是否启用urlManager
只是想法,没有具体实践,不到之处还望见谅,一起探讨
okokad
注册时间:2016-02-29
最后登录:2017-07-01
在线时长:49小时26分
最后登录:2017-07-01
在线时长:49小时26分
- 粉丝12
- 金钱25
- 威望80
- 积分1315