mondrake / drudbal
Doctrine DBAL 的 Drupal 驱动。
Requires
- php: >=8.1
- composer-runtime-api: ^2.0.0
- doctrine/dbal: ^4
- drupal/core: ^11
- drush/drush: ^13
This package is auto-updated.
Last update: 2024-08-31 17:07:54 UTC
README
(本README最后更新于2020年3月30日)
这是一个 实验性 的 Doctrine DBAL Drupal 数据库驱动。如果没有试用需求,请不要使用。很抱歉,我们不提供支持 :)
概念
该概念是使用 Doctrine DBAL 作为额外的数据库抽象层。DBAL Drupal 数据库驱动程序的代码旨在实现 '数据库无关性',即驱动程序应该能够在 DBAL 支持的任何 db 平台上执行(理论上是这样,实际上仍需要通过 DBAL 扩展的概念进行 db-platform 特定的高级修改,见下文)。
此驱动程序实现的 Drupal 数据库 Connection
类打开一个 DBAL\Connection
,并将语句的执行权交给它。《DBAL\Connection》本身包装了一个更低级别的驱动连接(对于 pdo_mysql 和 pdo_sqlite 驱动程序,是 PDO
;对于 mysqli 驱动程序,是 mysqli
)。同样,StatementWrapper
包装了一个 DBAL\Statement
,而 DBAL\Statement
又包装了一个 DBAL-driver 级别的 Statement
。DBAL 连接提供了额外的功能,如 Schema Manager,可以内省数据库模式并构建 DDL 语句,Query Builder 可以根据使用的数据库平台构建 SQL 语句等等。
为了克服 DBAL 的限制或适应 Drupal 的特定需求,DBAL Drupal 数据库驱动程序还实例化了一个名为 DBALExtension
的额外对象,该对象对于使用的 DBAL 驱动程序是唯一的,一些特定于 db 或 Drupal 的操作被委托给该对象。
状态
master
分支中的代码正在使用 MySQL 数据库、'mysql' 或 'mysqli' DBAL 驱动程序,或在 SQLite 数据库 上使用 'sqlite' DBAL 驱动程序,或使用 'oci8' 数据库驱动程序在 Oracle 数据库 上运行。
'正常工作' 的含义是
- 可以通过安装程序安装 Drupal 网站,选择 'Doctrine DBAL' 作为数据库选择;
- 它正在通过 GitHub Actions CI 执行一系列核心 PHPUnit 测试。需要应用 '相关 Drupal 问题' 下方列出的最新补丁才能获得干净的测试运行。
安装
以下是非常粗略的说明,用于从头开始使用此 db 驱动程序安装 Drupal
- 通过 Composer 从 Packagist 获取 DruDbal 模块,它将安装 Doctrine DBAL
$ composer require mondrake/drudbal:dev-master
- 启动交互式安装程序。像往常一样进行,当到达数据库选择表单时,选择 'Doctrine DBAL' 并输入符合 Doctrine DBAL 语法规范的 '数据库 URL'。注意:驱动程序仅与 mysql、mysqli、oci8 或 sqlite DBAL 驱动程序一起工作。
- 如果一切顺利,当你欢迎进入新的 Drupal 安装时,访问状态报告。'数据库' 部分将报告如下