LotusPhp中配置文件组件LtConfig是约定的一个重要组成部分,适用于多个场景,多数的LotusPhp组件如数据库,缓存,RBAC,表单验证等都需要用到配置组件,LtConfig配置组件也是LotusPhp框架中的基类。
以后讲解LotusPhp组件的时候都会讲解配置文件的内容和格式,本章节主要说的是配置文件的文件目录要求,格式以及实际应用。
LtConfig组件有2个组成部分,框架目录中的Config.php和ConfigExpression.php
主要通过LtConfig读取,写入,更新配置文件,而配置文件是通过文本文件的形式保存在入口文件定义的缓存文件夹内
请打开上次的HelloWorld范例,打开文件夹runtime\conf
在入口文件的讲解中,我们对几个比较重要的概念有一个了解
那就是项目和应用,一般来说一个入口文件定义一个项目,项目下可以有多个应用,LtConfig组件在Lotus初始化后,会先加载项目下的conf配置文件夹,如果是调试模式,则先加conf目录下的standard下的配置文件,再加载dev文件夹下的配置文件并将重复项替换,生产模式则加载standard文件夹下的配置文件,这样的好处是本地和生产环境下可以保留2个配置,上线切换为生产模式即可
在读取了项目配置后,程序会继续加载应用中的配置文件夹,让我们打开\runtime\app\frontend\conf,应用配置文件内容会被调用,如果有同名的配置内容,会替换项目配置文件中的同名内容。
一般来说,项目中的配置文件主要是一些公用的配置文件内容,而应用中的配置文件主要是针对应用私有的配置,多个应用共享的配置文件应该放到项目的配置文件夹中
配置文件书写规范如下
<?php $config['system.version'] = '1.0'; $config['system.name'] = 'LotusPhp网站管理系统';
必须以数组的形式写入,且数组变量名强制为$config,否则无法读取
现在我们修改下HelloWorld DEMO文件中的\runtime\app\frontend\action\default-index.php
<?php class defaultindexAction extends LtAction { public function execute() { $this->responseType = 'tpl'; $this->message=LtObjectUtil::singleton('LtConfig')->get('system.name'); $this->data='Hello World!'; } }
接着修改视图文件\runtime\app\frontend\view\default-index.php
<!doctype html> <html> <head> <meta charset="utf-8"> <title>{$this->message}{LtObjectUtil::singleton('LtConfig')->get('system.version')}</title> </head> <body> {$this->data} </body> </html>
保存好后,运行index.php文件,看看浏览器的标题栏有什么变化
在这个范例中,我们实践了在action里调用配置文件的方法和在view里调用配置文件的写法,再重温下
action中调用配置文件: $this->message=LtObjectUtil::singleton('LtConfig')->get('system.name'); 或者 $this->data=LtObjectUtil::singleton('LtConfig')->get('system.name'); view中调用配置文件: {LtObjectUtil::singleton('LtConfig')->get('system.version')}
至于LtObjectUtil::singleton这个类是做什么的,我们下个章节会有个介绍