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程序中必须的文 ...
随机推荐
- HDU 4405 【概率dp】
题意: 飞行棋,从0出发要求到n或者大于n的步数的期望.每一步可以投一下筛子,前进相应的步数,筛子是常见的6面筛子. 但是有些地方可以从a飞到大于a的b,并且保证每个a只能对应一个b,而且可以连续飞, ...
- What is the Database Initialization Parameter That is Associated to an ORA-32004 Error ?
APPLIES TO: Oracle Database - Enterprise Edition - Version 9.2.0.1 to 11.2.0.3 [Release 9.2 to 11.2] ...
- 监控RAC中的临时表空间
it is from metalink:Note:465840.1 1>Monitor the temp space allocation to make sure each instance ...
- Flexigrid例子二: 原位编辑器
有时候,我们想要编辑flexigrid里的数据.一个原位编辑器是需要的,现在不需要再弹出一个对话框了.这里我会展示如何做到这点. 我使用了jquery-in-place-editor库.请参考官方站点 ...
- JavaScript对象的创建之构造函数
通过构造函数的方式创建和基于工厂的创建类似,最大的区别就是函数的名称就是类的名称,按照java的约定,第一个字母大写. 使用构造函数创建对象时,在函数内部是通过this关键字来完成属性的定义. fun ...
- VS2010 和VS2012 的程序在XP上运行的方法
问题表象: VS2012编译的程序不能再XP下运行 解决办法: 1.工程设置的方法 在vs2012里,右键 属性->配置属性-常规->平台工具集->选个VS2008什么的就ok了~ ...
- 队列理论和队列网络模型 queueing theory and queueing network model
1队列理论 1.1队列在生活中随处可见,例如排队买票,排队打饭,排队做地铁等等.那将诸如此类的队列抽象一下,可归纳为一下5要术: 到达过程arrival process 服务时间的分布 service ...
- C/C++程序员面试易错题
c部分::::::::::::::::::::::::::::::::::: . 关键字volatile有什么含意? 并给出三个不同的例 子. [参考答案]一个定义为volatile的变量是说这变量可 ...
- 【翻译习作】 Windows Workflow Foundation程序开发-第一章01
第 1 章 欢迎来到工作流的世界 …思想如蝴蝶般飞到我身边 —— Gossard / Vedder (译注:Gossard与Vedder是来自Pearl Jam乐队的2名乐手,该句出自他们的歌曲 ...
- 洛谷P1473 零的数列 Zero Sum
P1473 零的数列 Zero Sum 134通过 170提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交 讨论 题解 最新讨论 路过的一定帮我看错了我死了- 题目描述 请考虑 ...