arillo / silverstripe-multidb
简单数据对象代理,帮助在多个数据库中持久化记录
dev-master
2018-09-13 16:25 UTC
Requires
- catfan/medoo: ^1.5
- silverstripe/framework: ^4
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
- 测试
- 迁移
- ...