laraflock / multi-tenant
Requires
- php: ^7.3|^8.0
- doctrine/dbal: ~2.5|~3.0
- laravel/framework: ^8.0
- phpseclib/phpseclib: ~2.0
- ramsey/uuid: ^4.0
Requires (Dev)
- fakerphp/faker: ^1.12
- laravel/laravel: ^8.0
- mockery/mockery: ^1.0
- phpunit/phpunit: ^9.0
- symfony/dom-crawler: ~3.1
- 5.x-dev
- 5.7.3
- 5.7.2
- 5.7.1
- 5.7.0
- 5.6.4
- 5.6.3
- 5.6.2
- 5.6.1
- 5.6.0
- 5.5.0
- 5.4.5
- 5.4.4
- 5.4.3
- 5.4.2
- 5.4.1
- 5.4.0
- 5.4.0-beta.2
- 5.4.0-beta
- 5.3.1
- 5.3.0
- 5.2.7
- 5.2.6
- 5.2.5
- 5.2.4
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.2.0-beta
- 5.1.x-dev
- 5.1.17
- 5.1.16
- 5.1.15
- 5.1.14
- 5.1.13
- 5.1.12
- 5.1.11
- 5.1.10
- 5.1.9
- 5.1.8
- 5.1.7
- 5.1.6
- 5.1.5
- 5.1.4
- 5.1.3
- 5.1.2
- 5.1.1
- 5.1.0
- 5.1.0-beta.2
- 5.1.0-beta
- 5.0.x-dev
- 5.0.17
- 5.0.16
- 5.0.15
- 5.0.14
- 5.0.13
- 5.0.12
- 5.0.11
- 5.0.10
- 5.0.9
- 5.0.8
- 5.0.6
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 5.0.0-beta.8
- 5.0.0-beta.7
- 5.0.0-beta.6
- 4.x-dev
- 3.x-dev
- 2.x-dev
- 2.0.1
- 2.0.0
- 2.0.0-beta.4
- 2.0.0-beta.3
- 2.0.0-beta.2
- 2.0.0-beta.1
- 1.x-dev
- 1.0.1
- 1.0.1-beta.2
- 1.0.1-beta
- 1.0.0
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.1
- 0.8.0
- 0.7.5
- 0.7.4
- 0.7.3
- 0.7.1
- 0.7.0
- 0.6.4
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6.0
- 0.5.7
- 0.5.5
- 0.5.4
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.1
- 0.3.0
- 0.2.9
- 0.2.8
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-bk/release-5.7.1
- dev-bk/laravel-8-support
- dev-bk/support-soft-deletes
- dev-aa/test-vapor
- dev-aa/fix-apt-setup
- dev-aa/add-dispatcher-tenancy
- dev-aa/5.4.2-fix-queue-temp
- dev-aa/check-tenant-override
- dev-aa/fix-queue-provider
- dev-aa/753-investigate-psql-schema
- dev-dk/5.4-statements
- dev-bk/readme.md-fix
- dev-dk/dras
- dev-resolver-verification-test
This package is auto-updated.
Last update: 2022-02-01 12:49:56 UTC
README
一个无侵入的Laravel包,使您的应用程序成为多租户。为每个网站提供服务,每个网站都从一个代码库中有一个或多个主机名。但具有资产、数据库的清晰分离以及根据租户覆盖逻辑的能力。
适用于喜欢为不同客户重用功能的营销公司或构建下一个软件即服务的初创公司。
提供
- 与Laravel框架的集成。
- 事件驱动,可扩展的架构。
- 可选的 - 集成到Web服务器。
- 能够添加特定租户的配置、代码、路由等。
数据库分离方法
- 一个系统数据库和分离的租户数据库(默认)。
- 系统数据库中的表使用前缀。
- 或者,根据您的需求,通过监听事件手动操作。
完整文档涵盖了安装和配置之外的内容。
要求,推荐环境
- Laravel 8.0+。
- PHP 7.3+
- Apache或Nginx。
- MySQL、MariaDB或PostgreSQL。
请阅读文档中的完整要求。
安装
composer require hyn/multi-tenant
自动服务注册
使用 自动发现,租户包将由Laravel自动检测。
手动服务注册
如果您想禁用Web服务器集成或更喜欢手动集成,请在应用程序的composer.json中设置 dont-discover
,如下所示:
{ "extra": { "laravel": { "dont-discover": [ "hyn/multi-tenant" ] } } }
如果您禁用自动发现,您就可以自己配置提供者。
在您的 config/app.php
中注册服务提供者
'providers' => [ // [..] // Hyn multi tenancy. Hyn\Tenancy\Providers\TenancyProvider::class, // Hyn multi tenancy webserver integration. Hyn\Tenancy\Providers\WebserverProvider::class, ],
部署配置
首先发布配置和迁移文件,以便您可以修改以满足您的需求
php artisan vendor:publish --tag tenancy
打开 config/tenancy.php
和 config/webserver.php
文件并修改以满足您的需求。
确保您已在
database.php
中配置了系统连接。如果您没有覆盖系统连接名称,则使用default
连接。
现在运行
php artisan migrate --database=system
这将运行所需的系统数据库迁移。
支持者
感谢所有支持者!🙏 [成为支持者]
赞助商
通过成为赞助商来支持此项目。您的徽标将显示在此处,并带有链接到您的网站。 [成为赞助商]
贡献者
许可证和贡献
此包在MIT许可证下提供。如果您有兴趣贡献,请确保阅读贡献指南。
测试
使用以下命令运行测试
vendor/bin/phpunit
如果使用MySQL,请使用
LIMIT_UUID_LENGTH_32=1 vendor/bin/phpunit
请注意,运行测试将完全重置您的当前应用程序,删除租户和系统数据库,并删除Laravel目录中的tenancy.json文件。
变更
所有变更都在变更日志中。
联系方式
使用以下方式个人联系:
- 在composer.json中提供的电子邮件地址。
- Discord聊天.
- Twitter.