摘要:一.模型基类 模型类采用Medoo框架作为基础,继承于Medoo类,然后写入构造方法将配置文件的数据库参数传入namespace hero\core; //引用Medoo框架的命名空间 use Medoo\Medoo; class Model extends Medoo { &
一.模型基类
模型类采用Medoo框架作为基础,继承于Medoo类,然后写入构造方法将配置文件的数据库参数传入
namespace hero\core;
//引用Medoo框架的命名空间
use Medoo\Medoo;
class Model extends Medoo
{
public function __construct(array $options=null)
{
//导入配置文件
$config = require '../config.php';
$options = $config['db'];
parent::__construct($options); 继承父类构造方法
}
}二.视图基类
视图类用第三方的一个基于原生PHP的模板引擎:plates,也是继承Engine类,然后继承一下父类的构造方法,初始化模板目录,和当前模板默认扩展名
namespace hero\core;
use League\Plates\Engine;
class View extends Engine
{
//变量容器
protected $data = [];
//构造方法
/**
* View constructor.
* @param null $directory 模板默认目录
* @param string $fileExtension 当前模板默认扩展名:php
*/
public function __construct($directory = null, $fileExtension = 'php')
{
parent::__construct($directory, $fileExtension);
}
}三.控制器基类
1.控制器类主要是对视图类模板引擎的参数进行设置,先实例化试图类,让默认参数传入
2.如果自己写入控制器基本,最基本的两个方法,就是[模板赋值]和[模板渲染]
namespace hero\core;
class Controller
{
//视图对象
protected $view = null;
//构造方法:实例化视图类
public function __construct()
{
$this->view = new namespace\View();
//配置模板引擎
$this->config();
}
//模板引擎配置
public function config()
{
//设置后台模板目录名称
$this->view->setDirectory(ROOT_PATH.'/app/admin/view');
//设置后台模板目录别名:命名空间
$this->view->addFolder('admin',ROOT_PATH.'/app/admin/view');
//设置前台模板目录名称
$this->view->setDirectory(ROOT_PATH.'/app/home/view');
//设置前台模板目录别名:命名空间
$this->view->addFolder('admin',ROOT_PATH.'/app/home/view');
}
//任何模板引擎都有两个核心的功能
//1.模板赋值 2.渲染模板
//1.模板赋值
public function assign($name,$value)
{
$this->data[$name] = $value;
}
// public function __set($name,$value)
// {
// $this->data[$name] = $value;
// }
//2.模板渲染
public function fetch($file)
{
//1.将容器数组中的元素(键值对)转为变量
//$data['price'] = 1000, 目标:$price = 1000
//data['arr'] = [1,2,3], 目标:$arr = [1,2,3]
//将数组中的键值对,转为变量的明值对的过程
extract($this->data);
//2.加载模板文件
if(file_exists($file) && is_file($file)){
require $file;
}
}
}四.整体框架的理解
1.框架主要基于MVC模式设计,围绕模型M,控制器C,视图V来进行编写,
2.主要运行流程由客户端发出请求,基于路由解析,分发请求,到控制器中进行操作,将数据传到M模型中进行数据处理并返回给C控制器,在由C控制器输出给V视图中显示在客户端中
3.入口文件主要负责加载必要文件和需要使用的常量传入基本参数,还有比较重要的启动框架
4.模型基类继承与第三方框架的话则不用写很多增删改查操作,基于父类框架即可使用
5.视图类基于第三方框架也是如此
6.控制器类主要核心两个操作就是基于视图类的 模板赋值 和模板渲染功能,也就是传输到视图类中.
批改老师:韦小宝批改时间:2018-12-10 09:36:42
老师总结:恩!很不错!写的很完整!理解的也没毛病!