dimajolkin/ydb-doctrine 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱: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
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

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

其他信息

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

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固