### MVC
* controller 代表控制器(代码逻辑控制)
* model 代表模型 (用于数据库处理)
* view 代理视图 (网页代码展示)
> 在每一个模块中,都要包含这三个目录及执行文件。
### 默认模块
http://localhost/index.php/home/index/index
* home 默认模块
* index 控制器名
* index 方法名
> 通地MVC模式,三个重要的参数对应了程序各目录及文件。所有业务逻辑模块或项目执行文件都在 /App/ 目录中。
**例如:**
* home 对应 /App/home 目录也称之为模块,也就是项目所需的入口目录
* 第一个 index 对应 /App/home/controller/index_controller.php 控制器
* 第二个 index 对应 /App/home/controller/index_controller.php 控制器中的index_function() 方法。
### 增加模块
> 根据不同项目的要求,可能需要多个或N个模块。比如 home是首页 admin是管理后台,那么需要我们手动增加模块。
1. admin 模块名称及目录
2. login 控制器名
3. index 方法名
> 新模块的访问地址 http://localhost/index.php/admin/login/index
* 请在/App/目录中增加 /admin/目录
* 在 /admin/ 目录中增加三个MVC基础目录(必须)controller、model、view
> 根据url业务的需要,配置执行文件如下:
> controller 目录内 创建控制器文件 login_controller.php 并写入初始代码:
```
namespace App\admin\controller;
use PHPt\lib\html;
class login_controller
{
public $viewpath;
public $geturlstr;
public $config;
public $model;
public $function;
public function __construct($viewpath, $geturlstr, $config, $model, $function, $controller)
{
$this -> viewpath = $viewpath;
$this -> geturlstr = $geturlstr;
$this -> config = $config;
$this -> model = $model;
$this -> functions = $function;
$this -> controller = $controller;
}
public function index_function()
{
//配置文件(必须)
$config = $this -> config;
//URL传入参数 array(必须)
$geturlstr = $this -> geturlstr;
//加载数据库操作(必须)
$model = "\\App\\".$geturlstr[0]."\\model\\".$this -> controller."_model";
$data = new $model;
/*
方法一的业务逻辑,可根据URL在本类中添加更多方法
*/
//演示调用数据库数据
$demo = $data -> sql();
/*
业务逻辑结束
*/
//加载视图层
require_once(html::I($this -> viewpath));
}
}
```
> model 目录内 创建 model模型文件 login_model.php 并写入初始代码:
```
namespace App\admin\model;
use PHPt\lib\database;
class login_model
{
public function __construct()
{
}
public function sql()
{
$db = database::sql();
//数据库开启设置为 true 不然报错
//$web = $db -> select("OP_Website","ourphp_web","where id = 1");
//return $web[0];
}
}
```
> view 目录内 创建视图(即浏览器展示页面)文件 login.php
```
写上你的HTML代码即可。
```
* 如果不想加载view视图,可在控制器中把 require_once(html::I($this -> viewpath)); 注释掉或删除。
### 代码编写及命名规范
> controller 控制器及model 模型文件命名必须按url中的参数来命名,不可以随意命名。
> controller 控制器及model 模型文件内的类及方法必须按照URL参数命名。
**例如:**
* controller login_controller.php 类名必须是 login_controller(login=url第二个参数)
* 方法必须是 index_function(index=url第三个参数)