[TOC=1]
* * * * *
# MVC
WeCenter应用是单一的,基于MVC(模型-视图-控制器)的方式来组织。
> MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务。
>
### 控制器
在``app``应用文件夹下,有很多不同的控制器,分别在不同的文件夹中。
以WeCenter程序首页为例。
~~~php
class main extends AWS_CONTROLLER
{
public function get_access_rule()
{
$rule_action['rule_type'] = "white"; //'black'黑名单,黑名单中的检查 'white'白名单,白名单以外的检查
if ($this->user_info['permission')
{
$rule_action['actions'][] = 'index';
}
return $rule_action;
}
public function setup()
{
//控制器下所以操作之前的执行代码
}
public function index_action()
{
//首页执行代码
}
}
~~~
在这个例子中,控制器为``explore/main``,它继承与主控制器``AWS_CONTROLLER``。
### 操作
每个控制器下有不同的操作(方法),它们分别对应着我们访问的URL。
例如通过访问首页,我们就被``默认访问``了上面例子``index_action()``的操作(方法)了。
### 模型
模型类通常完成实际的业务逻辑和数据封装,并返回和格式无关的数据。
模型类一般进行数据库读写操作,但并不一定必须要访问数据库。
### 视图
控制器调用模型类后返回的数据通过视图组装成不同格式的输出。视图根据不同的需求,来决定调用模板引擎进行内容解析后输出还是直接输出。
# 访问流程
入口文件 index.php
架构加载 system/system.php
系统初始化 system/init.php
AWS_APP
uri解析
Controller
视图