rollerworks/db-bundle

此包已被弃用,不再维护。未建议替代包。

Doctrine DBAL Helper Bundle。为 DBAL 提供额外功能

安装: 23

依赖者: 0

建议者: 0

安全: 0

星星: 2

观察者: 1

分支: 0

类型:symfony-bundle

dev-master / 1.0.x-dev 2014-01-01 13:43 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:20:37 UTC


README

UserErrorExceptionListener

此监听器监听与 DBAL 相关的异常,并寻找所谓的用户错误。

目前仅支持 PostgreSQL。

用户错误是由数据库中使用的自定义函数抛出的异常/错误,可以看作是系统异常,因此它不用于验证基本用户输入。

使用可能包括访问违规或不存在的关系。

安装

步骤 1:使用 Composer(推荐)

要使用 Composer 安装 RollerworksDBBundle,请将以下内容添加到您的 composer.json 文件中

// composer.json
{
    // ...
    require: {
        // ...
        "rollerworks/db-bundle": "master-dev"
    }
}

注意:请将上述片段中的 master-dev 替换为最新稳定分支,例如 1.0.*

然后,您可以通过在您的 composer.json 文件所在的目录中运行 Composer 的 update 命令来安装新的依赖项

$ php composer.phar update

现在,Composer 将自动下载所有必需的文件,并为您安装它们。接下来要做的就是更新您的 AppKernel.php 文件,并注册新包

<?php

// in AppKernel::registerBundles()
$bundles = array(
    // ...
    new Rollerworks\Bundle\DBBundle\RollerworksDBBundle(),
    // ...
);

步骤 1(替代):使用 deps 文件(Symfony 2.0.x)

首先,检出代码副本。只需将以下内容添加到您的 Symfony 标准分布的 deps 文件中

[RollerworksDBBundle]
    git=http://github.com/rollerworks/RollerworksDBBundle.git
    target=/bundles/Rollerworks/Bundle/DBBundle

注意:您可以在上述片段中添加 version 标签,例如 version=origin/2.0

然后通过您的内核注册包

<?php

// in AppKernel::registerBundles()
$bundles = array(
    // ...
    new Rollerworks\Bundle\DBBundle\RollerworksDBBundle(),
    // ...
);

请确保您还注册了命名空间到自动加载器

<?php

// app/autoload.php
$loader->registerNamespaces(array(
    // ...
    'Rollerworks'              => __DIR__.'/../vendor/bundles',
    // ...
));

现在使用 vendors 脚本来将新添加的仓库克隆到您的项目中

$ php bin/vendors install

步骤 1(替代):使用子模块(Symfony 2.0.x)

如果您使用子模块管理您的供应商库,首先创建 vendor/bundles/Rollerworks/Bundle 目录

$ mkdir -pv vendor/bundles/Rollerworks/Bundle

然后添加必要的子模块

$ git submodule add git://github.com/rollerworks/RollerworksDBBundle.git vendor/bundles/Rollerworks/Bundle/DBBundle

步骤 2:配置自动加载器

向您的自动加载器添加以下条目

<?php
// app/autoload.php

$loader->registerNamespaces(array(
    // ...
    'Rollerworks'              => __DIR__.'/../vendor/bundles',
    // ...
));

步骤 3:启用包

最后,在内核中启用包

<?php

// in AppKernel::registerBundles()
$bundles = array(
    // ...
    new Rollerworks\Bundle\DBBundle\RollerworksDBBundle(),
    // ...
);

恭喜!您已经准备好了!

步骤 4:配置包

默认情况下,异常监听器仅监听 \PDOException 和 \Doctrine\DBAL\Driver\OCI8\OCI8Exception。并且仅尝试解析以 'app-exception: ' 开头的错误消息。

您可以通过添加以下内容来更改此设置。

# app/config/config.yml

rollerworks_db:
    user_exception_listener:
        check_prefix: 'my-app-exception: '
        check_class_in: [ '\PDOException' ]