LotusPhp中配置文件组件LtConfig详解
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这个类是做什么的,我们下个章节会有个介绍
LotusPhp中配置文件组件LtConfig详解的更多相关文章
- unity3d中Transform组件变量详解
Transform组件是每个游戏对象必须有的一个组建,因为你创建一个空物体,它也有该组建,因为unity3d是面向组建开发的一款游戏引擎.通过一张图片来看看它的属性 你可以在通过代码查看这些属性的区别 ...
- vSan中见证组件witness详解
witness在vSan中作为见证组件其作用类似于WinServer中的仲裁磁盘,当Cluster中某一节点发生故障时,来判断该节点上的对象在哪一个新的节点上继续承载.此处需要强调的是,witness ...
- Tomcat配置(二):tomcat配置文件server.xml详解和部署简介
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- Tomcat(二):tomcat配置文件server.xml详解和部署简介
Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务 ...
- vue-cli 中的 webpack 配置详解
本篇文章主要介绍了 vue-cli 2.8.2 中的 webpack 配置详解, 做个学习笔记 版本 vue-cli 2.8.1 (终端通过 vue -V 可查看) vue 2.2.2 webpack ...
- Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解
封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...
- 【转】gitlab CI流水线配置文件.gitlab-ci.yml详解
目录 GitLab CI流水线配置文件.gitlab-ci.yml详解 实验环境 GitLab CI介绍 .gitlab-ci.yml 配置参数 参数详解 script image services ...
- mysql配置文件my.cnf详解
原文地址:mysql配置文件my.cnf详解 作者:gron basedir = path 使用给定目录作为根目录(安装目录). character-sets-dir = path 给出存放着字符集的 ...
- MySQL Cluster 配置文件(config.ini)详解
MySQL Cluster 配置文件(config.ini)详解 ################################################################### ...
随机推荐
- poj 1018 Communication System
点击打开链接 Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21007 Acc ...
- NOIP201305转圈游戏
2016.1.25 试题描述 有n个小伙伴(编号从0到n-1)围坐一圈玩游戏.按照顺时针方向给n个位置编号,从0到n-1.最初,第0号小伙伴在第0号位置,第1号小伙伴在第1号位置,……,依此类推. ...
- VMware10中的CentOS6.5命令行安装VMwaretools工具启用windows与虚拟机中Linux系统的共享目录
VMware10中的CentOS6.5命令行安装VMwaretools工具启用windows与虚拟机中Linux系统的共享目录 一.描述 系统描述:win7旗舰版64位系统+VMware Workst ...
- Flex4 自定义通用的ImageButton
Flex4与之前版本的一个极大区别就是外观皮肤的分离,虽然进一步解耦,但存在一个不爽的地方就是增加了编码的工作量,你能想象为你的每个自定义组件都写一个对应的皮肤吗?可能仅仅和你之前写过的组件差了那么一 ...
- port-channel和channel-group
cisco交换机上的链路聚合 2层 ethernet channel (interface)#channel-group number mode {on | auto [no-silent]|desi ...
- 获取oracle 里的表名与字段
--数据库表名 SELECT distinct A.OBJECT_NAME as TAB_NAME,B.comments as DESCR FROM USER_OBJECTS A , USER_TAB ...
- 安装python的redis模块
wget --no-check-certificate https://pypi.python.org/packages/source/r/redis/redis-2.8.0.tar.gz tar - ...
- 学习总结 html 表格标签的使用
表格: <table></table>表格 width:宽度.可以用像素或百分比表示. 常用960像素. border:边框,常用值为0. cellpadding:内容跟边框的 ...
- html5相关
1.语义化标签: header\section\aside\footer 2.音视频播放: video\audio 其中video支持ogg\mpeg4\webm格式的视频: 3.canvas 一.画 ...
- iOS 根据字符串来定位地址
- (void)viewDidLoad { [super viewDidLoad]; self.geocoder = [[CLGeocoder alloc]init]; // 设置地图可缩放 self ...