netherphp/database

数据库连接和查询工具。

v4.1.11 2023-03-08 23:54 UTC

README

Packagist Build Status codecov

一个低级别的数据库连接和查询库。提供了一个简单的API来连接、查询和从数据库服务器中处理结果。

要求

  • PHP 8.1+
  • PDO

支持的数据库服务器

基本连接/查询

  • 系统上的任何PDO都可以连接。
  • 并且你可以为它编写SQL。
  • 请参阅快速入门指南以获取视觉示例。

SQL生成器(Verse)

要使用SQL抽象器,将需要为该服务器编写一个编译器,以便它能够使用该服务器支持的最好和适当的关键字来生成。

命令行界面

此库还在vendor/bin中设置了一个netherdb命令,以帮助完成各种任务。

其他库

为了完成其工作,Nether数据库还将包括以下NetherPHP库。尽管如此,你的应用程序不会突然变成“NetherPHP”应用程序。这些都是你可以使用的实用程序,如果你愿意,它们将始终存在。

  • netherphp/option(配置管理)
  • netherphp/console(命令行库)
  • netherphp/object(原型设计)

类和接口

Database\Prototype

该类在Common\Prototype功能之上增加了基本的数据库搜索和操作。将其用作基类,以获取CommonDatabase的所有功能。

Database\Prototype::Find(iterable $Filters)

此方法提供了基本的分页搜索功能。给定一组过滤器类,扩展此类的类可以决定如何处理它们。还有一些特殊过滤器适用于所有

'Page' => 1, 'Limit' => 20

这些都是主要的分页过滤器。

'Seed' => 1234

用于任何基于RNG的操作的种子。如果提供一个每天只改变一次的值,你可以使用Sortrandom进行查询,它将返回整个天的相同行。

'Remappers' => [ callable, ... ]

提供一个可调用的函数,或者提供一个可调用的数组,它将被用作结果数据存储上的Remap可调用的函数。这对于在链接两个对象的类上搜索,但将结果映射到所需的数据部分非常有用。

'Resolvers' => [ callable, ... ]

通常,结果集的每一行都会实例化为一个执行搜索的类的对象。当提供一个调用列表时,它将给它们传递从数据库中出来的行。如果它返回一个有效的类名(字符串),它将用于实例化此行。如果它返回NULL,则列表中的下一个调用将尝试。

这可以用来优化对父类的搜索,父类可以生成各种子类型行的集合。

'Sort' => 'how'

选择要在此搜索中使用的排序方法。此类提供了默认实现pk-azpk-zarandom。子类可以提供更多排序。

'Debug' => TRUE

当启用时,这将查询结果对象附加到集合中,以便进行检查。