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详解的更多相关文章

  1. unity3d中Transform组件变量详解

    Transform组件是每个游戏对象必须有的一个组建,因为你创建一个空物体,它也有该组建,因为unity3d是面向组建开发的一款游戏引擎.通过一张图片来看看它的属性 你可以在通过代码查看这些属性的区别 ...

  2. vSan中见证组件witness详解

    witness在vSan中作为见证组件其作用类似于WinServer中的仲裁磁盘,当Cluster中某一节点发生故障时,来判断该节点上的对象在哪一个新的节点上继续承载.此处需要强调的是,witness ...

  3. Tomcat配置(二):tomcat配置文件server.xml详解和部署简介

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  4. Tomcat(二):tomcat配置文件server.xml详解和部署简介

    Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务 ...

  5. vue-cli 中的 webpack 配置详解

    本篇文章主要介绍了 vue-cli 2.8.2 中的 webpack 配置详解, 做个学习笔记 版本 vue-cli 2.8.1 (终端通过 vue -V 可查看) vue 2.2.2 webpack ...

  6. Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

    封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...

  7. 【转】gitlab CI流水线配置文件.gitlab-ci.yml详解

    目录 GitLab CI流水线配置文件.gitlab-ci.yml详解 实验环境 GitLab CI介绍 .gitlab-ci.yml 配置参数 参数详解 script image services ...

  8. mysql配置文件my.cnf详解

    原文地址:mysql配置文件my.cnf详解 作者:gron basedir = path 使用给定目录作为根目录(安装目录). character-sets-dir = path 给出存放着字符集的 ...

  9. MySQL Cluster 配置文件(config.ini)详解

    MySQL Cluster 配置文件(config.ini)详解 ################################################################### ...

随机推荐

  1. jquery.cookie.js 配置

    一定要写入cookies路径 一个轻量级的cookie 插件,可以读取.写入.删除 cookie. jquery.cookie.js 的配置 首先包含jQuery的库文件,在后面包含 jquery.c ...

  2. [kuangbin带你飞]专题二十二 区间DP

            ID Origin Title   17 / 60 Problem A ZOJ 3537 Cake   54 / 105 Problem B LightOJ 1422 Hallowee ...

  3. (medium)LeetCode 224.Basic Calculator

    Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...

  4. java的新窗体

    1.JFrame窗体 jf.setSize(200, 150);        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  ...

  5. Flex 医疗行程图

    ================================================ 病案的质量控制: 1.医生自检,主任检测,病案室检测达到三级检测 2.人工检测,自动检测 3.抽检(采 ...

  6. 启用 CORS 来解决这个问题(ajax跨域请求)

    <input type="file" name="btn_Upload" value="上传" id="btn_Upload ...

  7. Python计算程序运行时间

    方法1 import datetime starttime = datetime.datetime.now() #long running endtime = datetime.datetime.no ...

  8. 【LeetCode】6. ZigZag Conversion 锯齿形转换

    题目: 思路: 以图为例:s={'A','B','C','D','E','F','G','H'.....} 1.先不考虑中间元素F.G.H.N...,每一行前后元素在数组中对应下标相差size=2*n ...

  9. JavaScript之数组循环 forEach 循环输出数组元素

    var arrayAll = []; arrayAll.push(1); arrayAll.push(2); arrayAll[arrayAll.length] = 3; arrayAll[array ...

  10. cordova 开发属于自己的插件---android

    还是需要开发出自己的插件的... 我的cordova  version is 4.0.0 1.需要新建一个文件夹为 myplugin 1.1在myplugin文件夹下 新建 plugin.xml文件 ...