ramaid / multi-tenant
使用相同的Laravel安装运行多个网站,同时将特定于租户的数据分离,以实现完全独立的多域名设置。
Requires
- php: ^8.0
- doctrine/dbal: ~2.5|~3.0
- laravel/framework: ^9.0|^10.0
- ramsey/uuid: ^4.0
Requires (Dev)
- fakerphp/faker: ^1.12
- laravel/laravel: ^9.0|^10.0
- mockery/mockery: ^1.0
- phpunit/phpunit: ^9.0
- symfony/dom-crawler: ~3.1
This package is auto-updated.
Last update: 2024-09-13 17:37:39 UTC
README
这是一个无障碍的Laravel包,它使您的应用成为多租户。服务多个网站,每个网站都有来自同一代码库的一个或多个主机名。但具有明确的资产、数据库分离以及按租户覆盖逻辑的能力。
适用于喜欢为不同客户重复使用功能的市场营销公司或正在构建下一个软件即服务的初创公司。
提供
- 与出色的Laravel框架集成。
- 事件驱动,可扩展的架构。
- 可选的 - 与网络服务器的集成。
- 添加特定于租户的配置、代码、路由等的能力。
数据库分离方法
- 一个系统数据库和分离的租户数据库(默认)。
- 系统数据库中表前缀。
- 或者,手动,您希望的方式,通过监听事件。
完整文档涵盖了不仅仅是安装和配置。
要求,推荐环境
- Laravel 9.0+。
- PHP 8.0+
- Apache或Nginx。
- MySQL、MariaDB或PostgreSQL。
请阅读文档中的完整要求。
安装
composer require hyn/multi-tenant
自动服务注册
使用 自动发现,租户包将由Laravel自动检测。
手动服务注册
如果您想禁用网络服务器集成或更喜欢手动集成,请在您的应用程序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.