erwang / dataobject
此包已被废弃且不再维护。没有建议的替代包。
关于此包的最新版本(v1.0.8)没有可用的许可证信息。
PHP ORM 单文件实现
v1.0.8
2019-02-10 05:35 UTC
Requires
- nategood/commando: 0.3.*
- nette/php-generator: 3.2.*
- seld/cli-prompt: 1.0.*
Requires (Dev)
- phpunit/php-code-coverage: ^6.1
- phpunit/phpunit: ^7
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
回滚