账户中心 我的话题 我的评论 退出系统

全局模型创建与调用

全局模型概述
phpGrace 已经封装了极为便利的数据库操作,本身就是一种模型(数据模型)!使用全局模型具备以下优点:

1、极大的避免代码重复
2、复杂的业务逻辑封装
3、开发更具模块感


全局模型文件创建及命名规则

模型文件命名 : 模型名称.php
模型文件位置 : /phpGrace/models/对应模型文件
命名空间声明 : phpGrace\models


编写模型

<?php
// 使用命名空间 phpGrace\models;
// 类名与文件名一致
// 如果需要操作数据请继承 graceModel 继承模型
// 例 : 
/*
 * 模型类演示 以  person 数据表为例
 * 作者 : 深海 5213606@qq.com
 * 一个自定义缓存类文件的例子, 实现了 persons 数据表 的列表数据及单条数据查询缓存
 * 具体的缓存代码请根据项目情况自行编写
*/
/*--- 对应的数据表, 将 sql 命令导入到您的数据库即可快速创建 persons 数据表  --- */
/*
-- ----------------------------
-- Table structure for `persons`
-- ----------------------------
DROP TABLE IF EXISTS `persons`;
CREATE TABLE `persons` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `age` smallint(3) DEFAULT NULL,
  `addtime` int(11) DEFAULT NULL,
  `class` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `classid` (`class`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

-- ----------------------------
-- Records of persons
-- ----------------------------
INSERT INTO `persons` VALUES ('5', '小米', '275', '1594885171', '一年一班');
INSERT INTO `persons` VALUES ('6', 'aa', '116', '1594885197', '一年一班');
INSERT INTO `persons` VALUES ('7', 'aa', '162', '1594885215', '一年一班');
INSERT INTO `persons` VALUES ('8', 'aa', '69', '1594885219', '一年一班');
INSERT INTO `persons` VALUES ('9', 'aa', '139', '1594886100', '一年一班');
*/
namespace phpGrace\models;
class persons extends \graceModel{
	
	// 核心数据表名
	public $tableName = 'persons';
	// 核心数据表主键
	public $tableKey  = 'id';
	
	// 获取人员数据列表
	public function getList(){
		return $this->m->order('id desc')->fetchAll();
	}	
}


调用模型 model($modelName);
使用 phpGrace 的 model 函数可以快速的获取模型对象!参数:模型名称。
调用示例 :

<?php
class testController extends grace{
	public function index(){
		
		$personsModel = model('persons');
		$persons      = $personsModel->getList();
		p($persons);
	}
}


寄语
01. 利用好模型可以极大的避免代码重复、使项目模块化、更容易扩展和维护 ^_^
02. phpGrace 1.2.2 版本已经支持在模型内使用缓存了,数据 + 缓存 可以是您的模型具备极强的复用性,详情请查看本手册缓存部分。