norvutec/multi-tenancy

允许在单个应用程序中拥有多个租户

安装: 50

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

1.0.6 2024-08-15 10:51 UTC

This package is auto-updated.

Last update: 2024-09-15 11:01:13 UTC


README

多租户包将管理您的Symfony应用程序的多租户。
它将允许您在应用程序中拥有多个租户,并轻松管理它们。

当前租户支持以下功能

  • 按租户配置数据库

安装

composer require norvutec/multi-tenancy

Doctrine 配置

doctrine:
    dbal:
        default_connection: default
        connections:
          default:
              url: '%env(resolve:DATABASE_URL)%'
              driver: 'pdo_mysql'
              charset: utf8mb4
              server_version: '10.6.16-MariaDB'
              profiling_collect_backtrace: '%kernel.debug%'
              use_savepoints: true
          tenant:
            url: '%env(resolve:DATABASE_URL)%'
            driver: 'pdo_mysql'
            charset: utf8mb4
            server_version: '10.6.16-MariaDB'
            profiling_collect_backtrace: '%kernel.debug%'
            use_savepoints: true
            wrapper_class: Norvutec\MultiTenancyBundle\Doctrine\DBAL\TenantConnection

    orm:
        default_entity_manager: default
        entity_managers:
            default:
                connection: default
                mappings:
                  System:
                      is_bundle: false
                      type: attribute
                      dir: '%kernel.project_dir%/src/Entity/System'
                      prefix: 'App\Entity\System'
                      alias: System
            tenant:
                connection: tenant
                mappings:
                  Tenant:
                    is_bundle: false
                    type: attribute
                    dir: '%kernel.project_dir%/src/Entity/Tenant'
                    prefix: 'App\Entity\Tenant'
                    alias: Tenant

多租户配置

创建文件 config/packages/multi_tenancy.yaml

multi_tenancy:
  tenant_class: App\Entity\System\Tenant ## Class Implementing Tenant Interface
  tenant_select_route: app_test2 ## Route for Tenant Selection redirection
  tenant_migration_config: 'config/migrations/tenant.yaml' ## Migration Configuration for Tenant