基本概念

2021-09-27 10:55:56
admin
1686
最后编辑:admin 于 2021-09-28 15:37:33

入口文件

每个应用都有一个入口文件,入口文件并不一定都是指 index.php 文件,因为我们可以为不同的项目应用创建不同的入口文件,例如,前台的入口文件为 index.php ,后台的入口文件可能是 admin.php。

router

router 在 zentaoPHP 框架中表现为应用对象。我们在入口文件里创建一个应用(对象)时,其实就是实例化的 router 类。再通过 apache 的配置,将所有的请求解析到入口文件,然后由入口文件来负责调度。

app

router 会根据当前的请求来实例化一个具体的应用对象。比如 demo 应用的入口文件 index.php 代码如下:

include './framework/router.class.php';
include './framework/control.class.php';
include './framework/model.class.php';
include './framework/helper.class.php';
$app = router::createApp('demo');

config, lang, dbh

当应用实例化之后,它会加载该应用的公共配置文件,生成全局 $config 对象。

然后会连接到数据库,生成全局 $dbh 对象。(需先在配置文件中开启自动连接数据库)

然后会加载 common 模块的公共语言文件,生成全局 $lang 对象。(需先在配置文件中开启多语言功能)

URI,module,control, model and view

URI :当应用加载完公共的配置文件和语言文件之后,它会解析当前的请求,也就是 URI,得出要调用的模块及其方法、参数。zentaoPHP 采用模块和方法的方式来执行,任何一个 URL 访问都可以认为是访问某个模块的某个方法,例如:

www.xxx.com/index.php/user/create/tom/23.html

即:http://域名/入口文件/模块名/方法名/参数名/参数值

module :是指应用的模块。zentaoPHP 框架的功能模块存放在 module 文件夹下,每个模块就是一个子目录,模块相对独立便于开发与维护。一个模块由 control、 model、 view、css、js、config 和 lang 文件目录组成。

model :是模块的业务逻辑层,负责处理数据业务逻辑,然后传给 control 层。

control :是模块的控制器层,用来定义操作方法。前台每个页都对应着 control 里的一个方法函数,由它来负责组织各种业务逻辑 (model),然后输出展示到相应的视图 (view) 文件。

view :是模块的视图层,每个视图文件(应用页面)都对应着 control 里的一个方法函数。