kafoso/doctrine-firebird-driver

2.7.1 2019-12-18 16:01 UTC

This package is auto-updated.

Last update: 2024-09-19 02:25:45 UTC


README

Doctrine DBAL 的 Firebird 驱动程序。

此库完全独立(即抽象化)于 Doctrine DBAL 核心库。也就是说,它是一个完全的 插件

需求

要在您的应用程序代码中利用此库,以下要求是必需的

1 仅在远程/访客操作系统上需要,例如远程 Ubuntu 服务器或通过 Docker、Vagrant 或 XAMPP 安装的虚拟机。

许可证 & 声明

请参阅 LICENSE 文件。基本上:使用此库自行承担风险。

Schema Manager 的限制

此库 完全支持通过 Schema Manager 生成,即

  1. 从实体生成数据库表、视图等。
  2. 从数据库表、视图等生成实体。

不投资时间在模式生成的原因包括 Firebird 不允许重命名表,这反过来使得自动化的模式更新变得令人烦恼且过于复杂。可能通过编写手动迁移获得更好的结果。

安装

通过 Composer (kafoso/doctrine-firebird-driver)

composer install kafoso/doctrine-firebird-driver

通过 Github

git clone git@github.com:kafoso/doctrine-firebird-driver.git

配置

手动配置

例如,在 PHP 中的配置示例,请参阅 tests/tests/Test/Integration/AbstractIntegrationTest.php(在 setUp 方法中)。

更多帮助请参阅: https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/advanced-configuration.html

Symfony 配置(YAML)

此驱动程序可以像其他任何 Doctrine DBAL 驱动程序一样用于 Symfony。然而,必须指定 driver_class 选项而不是简单地指定 driver。这是由于驱动程序不是 核心 Doctrine DBAL 库 的组成部分。

示例 YAML 配置

doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                driver_class:   Kafoso\DoctrineFirebirdDriver\Driver\FirebirdInterbase\Driver
                host:           "%database_host%"
                port:           "%database_port%"
                dbname:         "%database_name%"
                user:           "%database_user%"
                password:       "%database_password%"
                charset:        "UTF-8"

测试

开发测试要求

要运行测试、修复错误、提供功能等,以下要求是必需的

当然,您也可以使用自己的 VM 设置手动安装所有内容。有关帮助和堆栈列表(必需的 apt-get 软件包),请参阅 Vagrantfile

测试运行安装

运行所有测试需要几个步骤。单元测试(tests/tests/Test/Unit)将在所有环境中运行。然而,集成测试(tests/tests/Test/Integration)需要以下条件,因为它们测试的是VM中运行中的Firebird数据库。

  1. vagrant up
    安装/配置VM。
  2. vagrant ssh
  3. sudo su
  4. apt-get -y install firebird2.5-superclassic
    您将需要输入密码来安装数据库。请提供此密码:88fb9f307125cc397f70e59c749715e1。稍后通过DBAL连接时将重用此密码。
  5. dpkg-reconfigure firebird2.5-superclassic
    启动Firebird数据库服务器。提供与上述相同的密码。

参考:https://firebirdsql.org/manual/ubusetup.html

运行测试

由于数据库是由PHP引导脚本动态创建的,因此需要在VM上以root用户身份运行测试。

  1. vagrant ssh
  2. sudo su
  3. apt-get install zip -y(用于安装composer包)
  4. 安装composer(在客户操作系统上)。遵循以下说明:https://getcomposer.org.cn/download/
  5. mv composer.phar /usr/bin/composer
  6. cd /var/git/kafoso/doctrine-firebird-driver
  7. composer install1
  8. cd /var/git/kafoso/doctrine-firebird-driver/tests
  9. php ../bin/phpunit tests

1 Composer会告诉您不应该以root/super用户身份运行它。这在技术上是真的,但在VM中没问题。

致谢

作者

感谢

https://github.com/doctrine/dbal

基础Doctrine DBAL实现。此库中的驱动程序和平台逻辑基于核心库中的其他实现,主要基于\Doctrine\DBAL\Driver\PDOOracle\Driver\Doctrine\DBAL\Platforms\OraclePlatform及其相应的父类。

https://github.com/helicon-os/doctrine-dbal

虽然此库的灵感来源于此 - 我们非常感谢作者们的工作 - 但此库在Interbase Firebird驱动程序逻辑方面有一些缺陷和限制。

  • 它包含错误。例如,对嵌套事务和保存点的处理不正确/不足。
  • 它在测试覆盖率方面存在不足。
  • 它似乎不再维护。可能已经完全停止。
  • 它与核心Doctrine DBAL代码混合在一起,使得版本管理和代码适应变得不必要地复杂;实际上是一场噩梦。它是从https://github.com/doctrine/dbal分叉的,尽管没有明确说明。
  • 它不是一个Composer包(不在https://packagist.org.cn上)。

https://github.com/ISTDK/doctrine-dbal

https://github.com/helicon-os/doctrine-dbal的分支,包含一些改进和修复。

https://firebirdsql.org/

Firebird文档、语法、下载等的主要资源。