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)详解 ################################################################### ...
随机推荐
- linux驱动学习之Input输入子系统
以前,看过国嵌关于input子系统的视频课程,说实话,我看完后脑子里很乱,给我的印象好像是input子系统驱动是一个全新的驱动架构,疑惑相当多.前几天在网上,看到有很多人介绍韦东山老师的linux驱动 ...
- Eclipse 常用设置
1. eclipse中的汉字横着显示怎么解决 同一种字体有两种显示方式,比如Fixedsys Excelsior 3.01和@Fixedsys Excelsior 3.01,前一种汉字是竖着显示,后一 ...
- SQL备份表及相关笔记
create table history1301( remark nvarchar(64))create table history1302( remark nvarchar(64))create t ...
- (转)C#精确时间计时器
原文地址:http://blog.sina.com.cn/s/blog_699d3f1b01012vgb.html 1 调用WIN API中的GetTickCount [DllImport(" ...
- 《Head First 设计模式》ch.2 观察者(Observer)模式
观察者模式 定义了对象之间一对多以来,这样一来,当一个对象改变状态时,它所有的依赖者都会收到通知并自动更新 设计原则-松耦合 松耦合将对象之间的互相依赖降到了最低——只要他们之间的接口仍被遵守 观察者 ...
- vc 递归删除非空文件夹
我觉得这是一个非常不错的递归例子 头文件 #pragma once #include <atlstr.h> #include <io.h> #include <strin ...
- Jmeter命令行方式启动
在性能测试过程中,我们常常遇到这样的问题,使用Jmeter的GUI界面进行大并发量的性能测试时,界面容易卡死,无法继续进行性能测试.通过使用命令行方式启动jmeter是一个不错的方式.下面就简单介绍一 ...
- Android开发-API指南-Manifest介绍
App Manifest 英文原文:http://developer.android.com/guide/topics/manifest/manifest-intro.html 采集(更新)日期:20 ...
- JAVA编写WEB服务器
一.超文本传输协议 1.1 HTTP请求 1.2 HTTP应答 二.Socket类 三.ServerSocket类 四.Web服务器实例 4.1 HttpServer类 4.2 Requ ...
- cordova ios --->OC 调用 js (一)
1.在HTML中定义一个函数如OCcallJS() function OCcallJS(){ alert("OC 调用js 的 方法"); } 2.当webview 加载完成的时候 ...