croak-dbmanagement / dbmanagement
一套用于使用 PDO 简单操作数据库的 PHP 对象和接口
This package is not auto-updated.
Last update: 2024-09-29 03:10:21 UTC
README
用于使用 pdo 管理通用数据库的 php 类
使用 DbManagement,您只需实现 DbManagement 接口,扩展 DbManagementObject,并定义数据库类型的查询,然后构建表或查询就变得非常简单。
通过 composer 使用 DbManagement:composer require croak-dbmanagement/dbmanagement
DbManagement 接口必须实现以处理不同类型的数据库和不同的语法。该软件包 https://github.com/20centcroak/SqliteDbManagement 为处理 sqlite 提供了实现。如果您使用 sqlite,请使用此软件包,该软件包调用 DbManagement 软件包
composer require croak-sqlite-dbmanagement/sqlite-dbmanagement
DbManamgementObject 需要表字段定义。这是通过在扩展 DbManagementObject 的类中创建 4 个常量数组来完成的
- KEYS[key=>value] 定义表的字段名。字段名是数组的所有值。值是字符串。
- KEY_TYPES[key=>type] 通过与 KEYS 数组相同的键定义与字段名关联的字段类型。它可以是 PHP 用于测试变量类型(is_string、is_numeric、is_int、is_float 等)的函数之一,因此它不依赖于数据库语法。类型是字符串。
- KEY_REQUIRED[key=>required] 定义在数据库中添加记录时必须的字段。与 KEYS 数组相同的键关联“required”值。必需的是布尔值。
- KEY_UNIQUE[key=>unique] 定义在数据库中添加记录时必须唯一字段。与 KEYS 数组相同的键关联“unique”值。唯一的是布尔值。
DbManamgementObject 的抽象设置方法应填充以返回这些常量
以下是一个示例
` use Croak\DbManagement\Exceptions\IotException;
use Croak\DbManagement\DbManagementObject;
class Measure extends DbManagementObject{
const KEYS = array(
"type"=>"type",
"unit"=>"unit",
"value"=>"value",
"flag"=>"flag",
"deviceSn"=>"id_device",
"date"=>"created"
);
const KEY_TYPES = array(
"type"=>"is_string",
"unit"=>"is_string",
"value"=>"is_float",
"flag"=>"is_string",
"deviceSn"=>"is_string",
"date"=>"is_string"
);
const KEY_REQUIRED = array(
"type"=>true,
"unit"=>true,
"value"=>true,
"flag"=>false,
"deviceSn"=>true,
"date"=>true
);
const KEY_UNIQUE = array(
"type"=>false,
"unit"=>false,
"value"=>false,
"flag"=>false,
"deviceSn"=>false,
"date"=>false
);
public function getKeys(){
return constant("self::KEYS");
}
public function getTypes(){
return constant("self::KEY_TYPES");
}
public function getRequiredKeys(){
return constant("self::KEY_REQUIRED");
}
public function getUniqueKeys(){
return constant("self::KEY_UNIQUE");
}
} `
就这么简单!
对于使用 GET 请求的查询,请使用以下关键字
- [fieldName]-up 按升序排序 [fieldName] 字段的数据
- [fieldName]-down 按降序排序 [fieldName] 字段的数据
- [fieldName]-min=XXX 选择 [fieldName]>=XXX 的数据
- [fieldName]-max=XXX 选择 [fieldName]<=XXX 的数据
- [fieldName]=XXX 选择 [fieldName]=XXX 的数据
假设您在应用程序中定义了 localhost:8080/measures 路由,并且数据库表中定义了名为 "value" 和 "flag" 的字段,以下是一个 GET 请求的示例
localhost:8080/measures?value-min=12&value-up&flag-down