arillo/silverstripe-multidb

简单数据对象代理,帮助在多个数据库中持久化记录

安装: 80

依赖项: 0

建议者: 0

安全性: 0

星级: 0

关注者: 5

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

dev-master 2018-09-13 16:25 UTC

This package is auto-updated.

Last update: 2024-09-09 02:32:24 UTC


README

[实验性] 简单数据对象代理,帮助在多个数据库中持久化记录。

最新稳定版本   总下载量

要求

SilverStripe CMS ^4.0

安装

composer require arillo/silverstripe-multidb

使用方法

<?php
use SilverStripe\ORM\DataObject;

class MyDataObject extends DataObject
{
    private static
        $table_name = 'MyDataObject',

        $db = [
            'Email' => 'Varchar(255)',
            'FirstName' => 'Varchar(255)',
            'Surname' => 'Varchar(255)',
        ],

        $summary_fields = [
            'Email' => 'Email',
            'FirstName' => 'FirstName',
            'Surname' => 'Surname',
        ]
    ;
}

use Arillo\MultiDB\DataObjectProxy;

class MyDataObjectProxy extends DataObjectProxy
{
    private static
        $dataobject_class = MyDataObject::class
    ;

    public static function db_config()
    {
        // Medoo configurations (@see https://medoo.in/api/new)
        return [
            'database_type' => 'mysql',
            'database_name' => <db_name>,
            'server' => <server>,
            'username' => <username>,
            'password' => <pw>,
        ];
    }
}

// get all
$records = MyDataObjectProxy::get();

// create
$item = MyDataObjectProxy::create([
    'Email' => 'some@email.com',
]);

// save it
$item->write();

$item->exists(); // true

// update record
$item->update([
    'Email' => 'updated@email.com',
])->write();

\SilverStripe\Dev\Debug::dump($item);

// delete record
$item->delete();

@TODO

  • 测试
  • 迁移
  • ...