erwang/dataobject

此包已被废弃且不再维护。没有建议的替代包。
关于此包的最新版本(v1.0.8)没有可用的许可证信息。

PHP ORM 单文件实现

v1.0.8 2019-02-10 05:35 UTC

This package is auto-updated.

Last update: 2022-04-10 15:23:43 UTC


README

类 DataObject

@package ErwanG

数据库结构

  • 每个表必须有一个名为 "id" 的主键,类型为 varchar(20)

  • 外键必须是 tableName_id

  • 关联表必须是 TableName1_TableName2(其中 TableName1

示例


Book : id, title, editor_id

Author : id, firstName, lastName, birthDate

Author_Book : id, author_id, book_id

Editor : id, name

更多示例在 examples.php 中;

__construct

DataObject 构造函数。

get

返回带有 id 的对象

$book = Book::get('ABC');
@param $id

@return mixed|null

setPDO

必须调用以设置 PDO 连接


DataObject::setPDO(['dbname'=>'database','host'=>'127.0.0.1','username'=>'root','password'=>'123456']);

@param $params must contain keys dbname, hostn username, password

@return PDO

_prepare

@param $query

@return \PDOStatement

query

执行查询并返回结果作为 DataObject

仅用于 SELECT 查询

@param $query

@param array $params

@return array

exec

执行查询并返回结果

@param $query

@param array $params

@return \PDOStatement

getTable

返回表名

默认值是类名

@return string

getColumns

返回表列

@return mixed

where

返回来自 where 查询的 DataObject

@param $where

@param array $params

@param null $order

@param null $limit

@return DataObject[]

whereFirst

返回来自 where 查询的第一个 DataObject

@param $where

@param array $params

@param null $order

@return DataObject|null

whereLast

返回来自 where 查询的最后一个 DataObject

@param $where

@param array $params

@param null $order

@return DataObject|null

find

返回来自关联数组的 DataObject


Book:find(['type'=>'thriller");

@param $params

@param null $order

@param null $limit

@return array

findFirst

返回来自关联数组的第一个 DataObject

@param $params

@param $order

@param bool $create if true, create object if not find

@return DataObject|null

findLast

返回来自关联数组的最后一个 DataObject

@param $params

@param $order

@return DataObject|null

findAll

返回所有对象

@param null $order

@param null $limit

@return array

__get

@param $name

@return array

@throws \Exception

create

从关联数组创建 DataObject


$author = Author::create(['firstname'=>'Victor','lastname'=>'HUGO']);

@param $params

@return DataObject

order

设置字符串 ORDER BY...

@param $order

@return string

limit

设置字符串 LIMIT...

@param $limit

@return string

count

返回来自 where 查询的计数

@param null $where

@param $params

@return int

isInDatabase

如果对象存在于数据库中则返回true

@return bool

defineId

返回一个唯一ID

@return bool|string

hasMany

返回具有关系的对象


$books = $victorHugo->hasMany(Book::class);

@param string $class

@return array

@throws \Exception

_getNamespace

@return string

_getClass

@return string

getModel

@param null $separator

@return mixed|string

_getClassBetween

@param $class

@param bool $namespace

@return string

store

将对象存储到数据库中

@return $this

@throws \Exception

delete

删除数据库中的对象

@return bool

tableExists

如果表存在则返回true

@return boolean

hasColumn

测试列是否存在

@param string $column column name

@return boolean

drop

删除表

@param bool $foreignKeyCheck

@return bool

truncate

截断表

@example CLASS::truncate(false);

@param bool $foreignKeyCheck

@return bool

populate

使用关联数组填充对象

@param $params

@return $this

isEqualTo

@param Object $object

@return bool

copy

复制对象(不包含id参数)

@return DataObject

beginTransaction

如果尚未开始事务,则开始事务

commit

提交事务

rollback

回滚