承接 dimajolkin/ydb-doctrine 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

dimajolkin/ydb-doctrine

最新稳定版本:0.0.1

Composer 安装命令:

composer require dimajolkin/ydb-doctrine

包简介

It's driver for YDB https://ydb.tech

README 文档

README

Test

    composer require dimajolkin/ydb-doctrine:dev-master

Пишется для проверки возможности запуска в маленьком проекте

# Для ананимного доступа. Используется при локальной разработке
DATABASE_URL="ydb://localhost:2136/local?discovery=false&iam_config[anonymous]=true&iam_config[insecure]=true"

# 
DATABASE_URL="ydb://ydb.serverless.yandexcloud.net:2135/ru-central1/xxxxxxx/xxxxxxx?discovery=false&iam_config[temp_dir]=/tmp&iam_config[use_metadata]=true"

Example for Symfony:

parameters:
  doctrine.orm.entity_manager.class: Dimajolkin\YdbDoctrine\ORM\EntityManager

#services:
#  doctrine.dbal.logging_middleware:
#    class: 'Dimajolkin\YdbDoctrine\DBAL\Driver\Middleware\LoggerMiddleware'

doctrine:
    dbal:
        options:
            YBD_URL: '%env(resolve:DATABASE_URL)%'
        driver_class: Dimajolkin\YdbDoctrine\Driver\YdbDriver
        wrapper_class: Dimajolkin\YdbDoctrine\YdbConnection
        server_version: 1.4
    dql:
      string_functions:
        rand: Dimajolkin\YdbDoctrine\ORM\Functions\Rand

Генерация таблиц

 use Doctrine\DBAL\Schema\Table;

 $table1 = new Table('event_bonuses');
 $table1->addColumn('event_id', Types::STRING);
 $table1->addColumn('event_bonuses_id', Types::STRING);
 $table1->setPrimaryKey(['event_id', 'event_bonuses_id']);
 $this->connection->createSchemaManager()->createTable($table1);

 $table2 = new Table('event');
 $table2->addColumn('id', Types::STRING);
 $table2->addColumn('name', Types::STRING, ['notnull' => false]); // Если колонка не в PK то обязательно not null!
 $table2->setPrimaryKey(['id']);
 $this->connection->createSchemaManager()->createTable($table2);

Функции

  1. RAND(columnName) -

DBAL Type mapping to YDB:

Doctrine\DBAL\Types Value YDB Type
ARRAY array json
ASCII_STRING ascii_string utf8
BIGINT bigint int64
BINARY binary string
BLOB blob string
BOOLEAN boolean bool
DATE_MUTABLE date
DATE_IMMUTABLE date_immutable
DATEINTERVAL dateinterval
DATETIME_MUTABLE datetime
DATETIME_IMMUTABLE datetime_immutable datetime
DATETIMETZ_MUTABLE datetimetz
DATETIMETZ_IMMUTABLE datetimetz_immutable
DECIMAL decimal
FLOAT float float
GUID guid uuid
INTEGER integer int32
JSON json json
OBJECT object -
SIMPLE_ARRAY simple_array json
SMALLINT smallint int8
STRING string utf8
TEXT text utf8
TIME_MUTABLE time int32
TIME_IMMUTABLE time_immutable int32

YDB Type:

Dimajolkin\YdbDoctrine\YdbTypes Constant Value Description
BOOL bool
INT8 int8
INT16 int16
INT32 int32
INT64 int64
UINT8 uint8
UINT32 uint32
UINT64 uint64
FLOAT float
DOUBLE double
DECIMAL decimal
STRING string
UTF8 utf8
JSON json
JSON_DOCUMENT jsonDocument
YSON yson
UUID uuid
DATE date
DATETIME datetime
TIMESTAMP timestamp
INTERVAL interval

统计信息

  • 总下载量: 48
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2022-09-17