php-curd基类框架
来源:互联网 发布:苏联暴行知乎 编辑:程序博客网 时间:2024/06/10 04:38
php 最长用的是curd基类,下面收集了一个curd的基类结构.
<?php/** * @uses array_helper */class CRUD_Model extends CI_Base_Model{ public $ci; public $crud_total = 0; private $crud_offset = 0; private $crud_page = 0; private $crud_limit = 20; protected $crud_mask = []; public $crud_id = []; public $crud_user_id = 0; public $crud_time = 0; public $crud_time_str = ''; public $crud_error_code = 0; public $crud_has_error = FALSE; public function __construct() { parent::__construct(); $this->ci = &get_instance(); } /** * --------------------------------------------------------- * CRUD Block-separated Methods * CRUD 子功能方法 * --------------------------------------------------------- */ public function crud_paginator($offset = NULL, $page = NULL, $limit = 20) { // 解析分页参数的方法 ... } public function crud_set_error($error_code = 0) { // 设置错误码(用于API或者Controller判定)和错误标记的方法 $this->crud_has_error = TRUE; $this->crud_error_code = $error_code; } protected function crud_process_id($id = 0, $data = []) { // 处理ID并缓存的方法 ... } protected function crud_prepare($data = []) { // 准备数据(时间戳之类后面需要用到但和主体关系不大的数据)的方法 $this->crud_time = time(); $this->crud_time_str = date('Y-m-d H:i:s', $this->crud_time); } protected function crud_filter_fields($data = []) { // 添加和修改时,过滤原数据中不需要的字段的方法 ... } protected function crud_save_total($data = []) { // 查询加上过滤条件后的总条数的方法 $this->select("''"); $this->crud_total = $this->count_all_results(); } protected function crud_add_list_filter($data = []) { // 列表筛选条件过滤方法 } protected function crud_add_detail_filter($data = []) { // 详情筛选条件过滤方法 } protected function crud_add_fields($data = []) { // 列表和详情字段附加方法(SELECT子句) } protected function crud_add_limit() { // 条数限制(分页过滤器)方法 if($this->crud_limit !== 'all') { $this->limit($this->crud_limit, $this->crud_offset); } } protected function crud_add_order($data = []) { // 排序附加方法 } protected function crud_add_list_with($data = []) { // 列表with(CI-Base-Model中额外添加数据的绑定钩子)的附加方法 } protected function crud_add_detail_with($data = []) { // 详情with的附加方法 } protected function crud_build_item($item = []) { // 对列表和详情字段进行处理的方法(直接取出来默认是字符串,如果是数字型需要手动转) return $item; } protected function crud_build_proto($data = []) { // 构造列表分页输出结构的方法,这个之后会向这个数组再附加列表list值 $proto = []; $proto['total'] = ...; $proto['offset'] = ...; $proto['page'] = ...; $proto['is_last_page'] = ...; $proto['is_full_page'] = ...; return $proto; } protected function crud_detail_precheck($detail = []) { // 详情预检查方法 return TRUE; } protected function crud_detail_postcheck($detail = []) { // 详情后期检查方法 return TRUE; } protected function crud_insert_precheck($data = []) { // 新增预检查方法 return TRUE; } protected function crud_insert_postcheck($data = []) { // 新增后期检查方法 return TRUE; } protected function crud_update_precheck($data = []) { // 更新预检查方法 return TRUE; } protected function crud_update_postcheck($data = []) { // 更新后期检查方法 return TRUE; } protected function crud_delete_precheck($data = []) { // 删除预检查方法 return TRUE; } protected function crud_delete_postcheck($data = []) { // 删除后期检查方法 return TRUE; } protected function crud_insert_rebuild($data = []) { // 新增数据时重新构造传入数据的方法(使其符合数据库结构) return []; } protected function crud_update_rebuild($data = []) { // 更新数据时重新构造传入数据的方法 return []; } /** * --------------------------------------------------------- * CRUD Main Methods * CRUD 主要函数 * --------------------------------------------------------- */ protected function crud_list($offset = NULL, $page = NULL, $limit = 20, $data = []) { // 查询列表 ... } protected function crud_detail($id = 0, $data = []) { // 查询详情 ... } protected function crud_insert($data = []) { // 添加 ... } protected function update_feed($id = 0, $data = []) { // 修改 ... } protected function crud_delete($id = 0) { // 删除 ... }}
阅读全文
0 0
- php-curd基类框架
- php/curd
- SSH框架整合+CURD
- Laravel框架详解 CURD
- Laravel框架详解 CURD
- TP框架CURD
- Think PHP CURD
- php mongoDB 的curd
- php mongoDB 的curd
- PHP CURD用户管理
- php+memcached CURD操作
- yii框架的简单curd
- 封装数据库类curd
- CURD
- CURD
- CURD
- CURD
- CURD
- 【C语言】查询算法
- 删除大数量的表中数据之存储过程模板
- Wormholes
- glib-The Main Event Loop
- 素数的一些逻辑题
- php-curd基类框架
- 兔子繁衍问题求解(阿里巴巴2017在线编程题)
- shell算法的使用
- 2017 Multi-University Training Contest
- 动态规划之背包问题——Java实现
- TI am335x U-boot
- RNN之LSTM(二)
- 输入广义表形式的树(字符串),删除指定值的节点(节点值为单个字母)及其子树,并且输出此时树的广义表形式
- 分布式服务框架浅析