netherphp / database
数据库连接和查询工具。
Requires
- php: >=8.1.0
- netherphp/console: ^4.0
- netherphp/object: ^4.1
- netherphp/option: ^1.0
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.2
- netherphp/standards: ^0.2.5
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
This package is auto-updated.
Last update: 2024-09-13 23:16:07 UTC
README
一个低级别的数据库连接和查询库。提供了一个简单的API来连接、查询和从数据库服务器中处理结果。
要求
- PHP 8.1+
- PDO
支持的数据库服务器
基本连接/查询
- 系统上的任何PDO都可以连接。
- 并且你可以为它编写SQL。
- 请参阅快速入门指南以获取视觉示例。
SQL生成器(Verse)
要使用SQL抽象器,将需要为该服务器编写一个编译器,以便它能够使用该服务器支持的最好和适当的关键字来生成。
- MySQL / MariaDB(PDO驱动程序:'mysql')
- 请参阅Verse SQL生成器的示例。
命令行界面
此库还在vendor/bin
中设置了一个netherdb
命令,以帮助完成各种任务。
- 请参阅NetherDB命令行的示例。
其他库
为了完成其工作,Nether数据库还将包括以下NetherPHP库。尽管如此,你的应用程序不会突然变成“NetherPHP”应用程序。这些都是你可以使用的实用程序,如果你愿意,它们将始终存在。
- netherphp/option(配置管理)
- netherphp/console(命令行库)
- netherphp/object(原型设计)
类和接口
Database\Prototype
该类在Common\Prototype
功能之上增加了基本的数据库搜索和操作。将其用作基类,以获取Common
和Database
的所有功能。
Database\Prototype::Find(iterable $Filters)
此方法提供了基本的分页搜索功能。给定一组过滤器类,扩展此类的类可以决定如何处理它们。还有一些特殊过滤器适用于所有
'Page' => 1, 'Limit' => 20
这些都是主要的分页过滤器。
'Seed' => 1234
用于任何基于RNG的操作的种子。如果提供一个每天只改变一次的值,你可以使用Sort
为random
进行查询,它将返回整个天的相同行。
'Remappers' => [ callable, ... ]
提供一个可调用的函数,或者提供一个可调用的数组,它将被用作结果数据存储上的Remap
可调用的函数。这对于在链接两个对象的类上搜索,但将结果映射到所需的数据部分非常有用。
'Resolvers' => [ callable, ... ]
通常,结果集的每一行都会实例化为一个执行搜索的类的对象。当提供一个调用列表时,它将给它们传递从数据库中出来的行。如果它返回一个有效的类名(字符串),它将用于实例化此行。如果它返回NULL,则列表中的下一个调用将尝试。
这可以用来优化对父类的搜索,父类可以生成各种子类型行的集合。
'Sort' => 'how'
选择要在此搜索中使用的排序方法。此类提供了默认实现pk-az
、pk-za
和random
。子类可以提供更多排序。
'Debug' => TRUE
当启用时,这将查询结果对象附加到集合中,以便进行检查。