LotusPhp入口文件解析
LotusPhp也是单入口的框架,可以根据需要开启多个应用实例
例如前台页面可以用index.php作为入口文件,后台可以用admin.php作为入口文件,多个应用实例可以共享应用配置和类库或者根本每个应用实例定义不同的配置和类库。
在LotusPhp框架中,有3个重要的组成部分
类库+约定+胶水代码
而LotusPhp就是通过胶水代码来整合所有类库和约定的,正常情况下,只要引用框架目录中的Lotus.php一个文件即可,其他文件都可以通过Autoload类库自动加载
现在我们就来了解下入口文件的规范
<?php
ob_start(); //如果不开启session,下面这行可以注释掉
session_start(); //定义文件编码
header('Content-Type:text/html;charset=UTF-8'); //防止直接打开的参数,一般用于模板或者类库,函数文件中
define("LOTUS", true); //定义根目录
define("ROOT",dirname(__FILE__)); //引用Lotus.php
$lotusHome = ROOT.'/framework/';
include($lotusHome . "Lotus.php");
$lotus = new Lotus; //是否处于开发模式,开发模式适合于调试,每次运行都会重新编译模板和配置文件
//改成false,即成为生产模式,性能会有所提升,不过更改了模板和配置需要删除文件缓存
$lotus->devMode = true; //定义文件缓存目录
$lotus->defaultStoreDir = ROOT.'/cache/'; //定义项目运行目录,如果不定义项目运行目录,LotusPhp将配合其他框架或者程序只做自动加载的作用,将不调用MVC和路由等组件,你可以把LotusPhp当做一个类库集而不是一个框架使用
$lotus->option['proj_dir'] = ROOT.'/runtime/'; //定义应用实例名称,应用实例目录在项目运行目录下
$lotus->option['app_name'] = 'Admin'; //非必须,定义可以自动加载的目录,一般项目目录下所有函数和类库都会自动加载
//这里定义只适合加载在项目运行目录之外的文件夹中的类库和函数
$lotus->option['autoload_dir'] = ROOT.'/plugin/'; //LotusPhp启动
$lotus->init();
如果您使用别的框架或者视图引擎,可以将LotusPhp当做一个自动加载的类库集也可以,按照上面的注释修改就可以完成,在php程序的第一行引用上面这个文件即可
当然,您也可以将别的框架里的优秀类库稍作修改改为LotusPhp的框架类库或者常用类即可,稍后的章节中,我们会对LotusPhp的框架类库的规范有一个讲解
项目运行目录中的文件,除了视图文件夹和配置文件夹,只允许包含类库和函数文件的php,在函数外或者类库外定义变量,常量或者运行php语句容易引起混乱,不建议这样做。
LotusPhp入口文件解析的更多相关文章
- ecmall 入口文件解析 引入了什么
每一个框架都有自动载入的工具库,搜了半天也没搜到相关介绍,就自己看入口文件琢磨了一下, <?php define('ROOT_PATH', dirname(__FILE__)); //定义项目根 ...
- thinkPHP框架单一入口文件解析
一.index.php (可参考ThinkPHP学习手册http://document.thinkphp.cn/manual_3_2.html#entrance_file) index.php单入口 ...
- Vue源码解析(一):入口文件
在学习Vue源码之前,首先要做的一件事情,就是去GitHub上将Vue源码clone下来,目前我这里分析的Vue版本是V2.5.21,下面开始分析: 一.源码的目录结构: Vue的源码都在src目录下 ...
- tp3.2源码解析——入口文件
如果有人读这篇文章并跟着做的话,希望你能使用支持函数跳转的编辑器,还要善用var_dump和exit,对着源码去调试着看.跟着入口文件读,执行到哪里你看到哪里,对于那些不能一眼看出来的配置,则要记录下 ...
- CI 框架源码解析一之入口文件 index.php
Index.php作为CI框架的入口文件,源码分析,自然而然由此开始.在源码分析的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现,如果英文水平很好的话,读过index.php文件的英文注释之 ...
- 详细解析Thinkphp5.1源码执行入口文件index.php运行过程
详细解析Thinkphp5.1源码执行入口文件index.php运行过程 运行了public目录下的index.php文件后,tp的运行整个运行过程的解析 入口文件index.php代码如下: < ...
- Thinkphp源码分析系列(一)–入口文件
正如官方文档上所介绍的,thinkphp使用单一入口,所有的请求都从默认的index.php文件进入.当然不是说一定非得从index.php进入,这应该取决于你的服务器配置,一般服务器都会有默认的首页 ...
- android基础知识13:AndroidManifest.xml文件解析
注:本文转载于:http://blog.csdn.net/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...
- Android之AndroidManifest.xml文件解析
转自:Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文 ...
随机推荐
- LK光流算法:提高计算精度和增加搜索范围
LK光流算法:提高计算精度和增加搜索范围 关于LK算法的基本理论,见:http://www.cnblogs.com/dzyBK/p/4960630.html 这里主要阐述如何提高LK算法的计算精度和在 ...
- Codeforces 626E Simple Skewness 「数学」「二分」
题意: 给你一堆无序数,寻找它的一个子堆,使得子堆的平均数减中位数最大. 数字的个数n<=2e5 0<=xi<=1e6. 思路: 首先可以证明这堆数一定是奇数个,证明方法是尝试在奇数 ...
- POJ 1703
种类并查集,基本思想是每次压缩路径都必须同时更新子节点和根节点的关系,这种关系是通过子节点和父亲节点的关系,以及父亲节点与根节点的关系运算出来. 压缩路径的findme();参考了大神的代码,做的第二 ...
- 用HTML代码加载Unity内容(unity频道:http://unity3d.9ria.com/)
Unity内容在浏览器通过Unity网络播放器插件加载.HTML代码与这个插件通常不直接通信,而是通过UnityObject的脚本帮助.其主要任务是Unity的内容嵌入一个非常简单的任务,通过从各种浏 ...
- ListView中使用type需要注意的东西
在使用ListView时,如果使用了getItemViewType, 记得他的值一定要是从0开始计数的. 且要覆盖getViewTypeCount方法.并且让getViewTypeCount>g ...
- hive数据文件简单合并
MR代码: package merge; import java.io.IOException; import java.util.Iterator; import org.apache.hadoop ...
- Arch-Linux-添加中文字体
代码下载: Arch-Linux-添加中文字体.txt
- Microsoft Office 2007的ContentType
当从浏览器返回一个文件时,需要指定ContentType,以下是Office2007对应的值: "application/vnd.openxmlformats-officedocument. ...
- jsp页面
//获取根目录 ${pageContext.request.contextPath} //(父页面提交,嵌入页面显示)提交表单,设置响应方法和返回结果页面显示在frame中 <input typ ...
- mysql学习笔记(sqlalchemy安装及简单使用)
博主最近在研究接口API自动化测试,之前设计的通过excel来实现自动化测试的框架实际使用中还是有很多局限性 这次博主的思路是: 1 搭建接口API管理平台 支持数据库方便维护 2 自动化测试平台可直 ...