addoptify/sugarcrm-database

此包最新版本(0.2.2)没有可用的许可信息。

0.2.2 2017-11-13 23:27 UTC

This package is auto-updated.

Last update: 2024-09-20 06:46:06 UTC


README

为 SugarCRM 7.5 及以上版本提供增强的数据库管理

作者:Emil Kilhage emilkilhage@gmail.com

* Adds support for transactions for MySQL InnoDB
* Throws errors instead of triggering a die(); upon database errors

安装

安装依赖

添加依赖

"require": {
    // ...
    "dri-nordic/sugarcrm-database": "~0.1.0"
    // ...
},

更新依赖

composer update

确保启用 composer 自动加载

<?php // docroot/custom/Extension/application/Ext/Utils/composer.autoloader.php

require dirname(dirname(dirname(dirname(dirname(__DIR__))))) . "/vendor/autoload.php";

配置管理器

<?php // docroot/config_override.php

$sugar_config['dbconfig']['db_manager_class'] = 'DRI\\SugarCRM\\Component\\Database\\MySQL\\Manager';

用法

<?php

use DRI\SugarCRM\Component\Database\TransactionalManager;

try {
    if ($db instanceof TransactionalManager) {
        $db->beginTransaction();
     }
     
     // Do your stuff

    if ($db instanceof TransactionalManager) {
        $db->commit();
    }
} catch (\Exception $e) {
    if ($db instanceof TransactionalManager) {
        $db->rollback();
    }

    throw $e;
}

实验性

在更多测试之前不要在生产环境中使用

此逻辑钩子通过挂钩到 api(v10),使所有 api 调用支持完整的交易支持

src/LogicHook/TransactionManager.php

将此逻辑钩子安装在与 ./copy 相同的路径中

copy/custom/Extension/application/Ext/LogicHooks/dri-transaction-management.php