thingengine/dataobjects

数据对象,用于加速CRUD开发

dev-master 2019-08-24 11:38 UTC

This package is not auto-updated.

Last update: 2024-09-26 18:20:28 UTC


README

基于PHP的数据对象,用于加速CRUD开发

  • 数据对象旨在以Schema.org的方式尽可能通用和有用
  • 所有表都创建了一个自增ID和一个令牌(UUID)
  • 所有表至少包含一个ref_token来匹配所有权
  • 所有表都有created_at、updated_at、deleted_at时间戳
  • 所有表都有created_by、updated_by、deleted_by令牌字段以进行跟踪。
  • 查询类包含内置的分页和其他简单的查询构建器命令,便于使用。
  • 查询类使用(PDO::FETCH_CLASS, 'ThingEngine\DataObjects*')来返回数据对象

安装

composer require thingengine/dataobjects

需求

"require": {
    "php": ">=7.2.0",
    "respect/validation": "^1.1",
    "ramsey/uuid": "^3.8"
},

示例

选择

//Initiate Query with PDO, Table Name, and DataObject Class Name
$query = new ThingEngine\DataObjects\Query(PDO, "te_article", "ThingEngine\DataObjects\Content\Article");

//Loop through using request pagination (?p=2&pp=3)
foreach( $query->where("created_at",">","2019-01-01 00:00:00")->paginateByRequest()->orderBy("id","DESC")->fetchAll() as $article)
echo "<P>".$article->getArticleTitle() . " ". $article->getToken();

创建

//Should be wrapped in a try/catch and add PDO Transaction for best results
$query = new ThingEngine\DataObjects\Query(PDO, "te_article", "ThingEngine\DataObjects\Content\Article");
$article = new ThingEngine\DataObjects\Content\Article();
$article->defaultValues();
$article->addValues($_REQUEST);
$query->save($article->toArray());

读取

$query = new ThingEngine\DataObjects\Query(PDO, "te_article", "ThingEngine\DataObjects\Content\Article");
foreach( $query->where("token","=",$token)->fetchAll() as $article)
echo "<P>".$article->getArticleTitle() . " ". $article->getToken();