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语句容易引起混乱,不建议这样做。