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入口文件解析的更多相关文章

  1. ecmall 入口文件解析 引入了什么

    每一个框架都有自动载入的工具库,搜了半天也没搜到相关介绍,就自己看入口文件琢磨了一下, <?php define('ROOT_PATH', dirname(__FILE__)); //定义项目根 ...

  2. thinkPHP框架单一入口文件解析

    一.index.php  (可参考ThinkPHP学习手册http://document.thinkphp.cn/manual_3_2.html#entrance_file) index.php单入口 ...

  3. Vue源码解析(一):入口文件

    在学习Vue源码之前,首先要做的一件事情,就是去GitHub上将Vue源码clone下来,目前我这里分析的Vue版本是V2.5.21,下面开始分析: 一.源码的目录结构: Vue的源码都在src目录下 ...

  4. tp3.2源码解析——入口文件

    如果有人读这篇文章并跟着做的话,希望你能使用支持函数跳转的编辑器,还要善用var_dump和exit,对着源码去调试着看.跟着入口文件读,执行到哪里你看到哪里,对于那些不能一眼看出来的配置,则要记录下 ...

  5. CI 框架源码解析一之入口文件 index.php

    Index.php作为CI框架的入口文件,源码分析,自然而然由此开始.在源码分析的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现,如果英文水平很好的话,读过index.php文件的英文注释之 ...

  6. 详细解析Thinkphp5.1源码执行入口文件index.php运行过程

    详细解析Thinkphp5.1源码执行入口文件index.php运行过程 运行了public目录下的index.php文件后,tp的运行整个运行过程的解析 入口文件index.php代码如下: < ...

  7. Thinkphp源码分析系列(一)–入口文件

    正如官方文档上所介绍的,thinkphp使用单一入口,所有的请求都从默认的index.php文件进入.当然不是说一定非得从index.php进入,这应该取决于你的服务器配置,一般服务器都会有默认的首页 ...

  8. android基础知识13:AndroidManifest.xml文件解析

    注:本文转载于:http://blog.csdn.net/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...

  9. Android之AndroidManifest.xml文件解析

    转自:Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文 ...

随机推荐

  1. WPF异步调用

    this.Dispatcher.BeginInvoke(new Action(()=> this.textBlock1.Text = DateTime.Now.ToString("HH ...

  2. 21.Merge Two Sorted Lists(链表)

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...

  3. ORA-04031 With Leak in "OBJ STAT MEMO" Allocations Seen in V$SGASTAT on 10.2.0.5 (文档 ID 1350050.1)

    APPLIES TO: Oracle Server - Enterprise Edition - Version: 10.2.0.5<max_ver> and later   [Relea ...

  4. html——SVG

    SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺寸的情况下其图形 ...

  5. visual studio 中快捷键的使用

    我在使用编辑器的过程中是比较喜欢使用快捷键的,因为这样可以在操作中更加便捷 ①ctrl+k,ctrl+d,代码重排 ②ctrl+k,k就是ctrl键加连续两次k键,添加书签,然后通过ctrl+k,ct ...

  6. 聚类结果的评估指标及其JAVA实现

    一. 前言 又GET了一项技能.在做聚类算法的时候,由于要评估所提出的聚类算法的好坏,于是需要与一些已知的算法对比,或者用一些人工标注的标签来比较,于是用到了聚类结果的评估指标.我了解了以下几项. 首 ...

  7. idea 破解服务器

    idea 最新破解服务器 http://idea.iteblog.com/key.php

  8. Hadoop2.6.0(2.4~2.7)完全分布式搭建-入门向 新手向 详细流程

    .caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.tabl ...

  9. 如何去掉有背景图的a标签的边框

    有两种情况: 1.<a href="#" style="background:url(../images/download.png);"></ ...

  10. x86_64 Ubuntu 14.04 LST安装gcc4.1.2 转载

    由于编译源码软件需要用到gcc4.1.2版本,但是本机已经安装有gcc4.8.4,下载gcc4.1.2源码编译总会出现运行找不到库文件错误,或者i386和x86_64不兼容问题,在http://ask ...