aura/sql

Aura.Sql是一个PDO扩展,提供懒连接、数组引号、查询分析、值绑定以及常见获取方式的便利方法。由于它扩展了PDO,使用PDO的现有代码可以无需修改即可使用它。

5.0.2 2023-06-12 05:16 UTC

README

提供PDO扩展,包括分析器和连接定位器。由于ExtendedPdo是原生PDO的扩展,因此已经使用原生PDO或类型提示为原生PDO的代码可以无需更改即可使用ExtendedPdo。

Aura.Sql在原生PDO之上增加了以下功能

  • 懒连接。ExtendedPdo仅在需要连接的方法调用时连接到数据库。这意味着如果您从未执行查询,则创建实例时不会产生连接成本。

  • 装饰。DecoratedPdo可以用来装饰现有的PDO实例。这意味着PDO实例可以在运行时“扩展”以提供ExtendedPdo的行为。

  • 数组引号。quote()方法将接受一个数组作为输入,并返回一个由逗号分隔的引号值字符串。

  • 新的perform()方法。perform()方法的作用就像query()一样,但在调用过程中将值绑定到预处理语句。此外,代表数组值的占位符将被替换为逗号分隔的引号值。这意味着当使用perform()时,您可以将值数组绑定到用于IN(...)条件的占位符。

  • 新的fetch*()方法。新的fetch*()方法提供常用的获取操作。例如,您可以直接在实例上调用fetchAll(),而无需准备语句、绑定值、执行然后从预处理语句中获取。所有fetch*()方法都接受一个要绑定到查询语句的值数组,并使用新的perform()方法内部。

  • 新的yield*()方法。这些是与fetch*()方法互补的方法,它们产生结果而不是返回它们。

  • 默认异常。ExtendedPdo以ERRMODE_EXCEPTION模式启动错误报告,而不是ERRMODE_SILENT模式。

  • 分析器。提供可选的查询分析器,以及用于其他实现的接口,该接口记录到任何PSR-3接口。

  • 连接定位器。提供可选的懒加载服务定位器,用于选择不同的数据库连接(默认、读取和写入)。

安装和自动加载

此包可以通过Composer以aura/sql安装,并支持PSR-4自动加载。

或者,下载发行版,或克隆此存储库,然后将 Aura\Sql\ 命名空间映射到包的src/目录。

依赖项

此包需要PHP 8.1或更高版本;它还在PHP 8.1-8.2上进行了测试。我们原则上推荐使用PHP的最新可用版本。

Aura库包可能有时依赖于外部接口,但从不依赖于外部实现。这允许在不牺牲灵活性的情况下符合社区标准。有关详细信息,请检查包的composer.json文件。

质量

Scrutinizer Code Quality Code Coverage Build Status PDS Skeleton

本项目遵循语义化版本控制(Semantic Versioning)

要在命令行运行单元测试,请先执行composer install命令,然后在包根目录下执行./vendor/bin/phpunit命令。(这需要Composer作为composer可用。)

本包试图遵守PSR-1PSR-2PSR-4规范。如果您发现不符合规范的地方,请通过pull request发送补丁。

社区

如有疑问、提供反馈或与其他Aura用户进行交流,请加入我们的Google Group、关注@auraphp或在Freenode的#auraphp频道与我们聊天。

文档

本包的完整文档在此