laraflock/multi-tenant

此包已被废弃,不再维护。作者建议使用hyn/multi-tenant包。

使用相同的Laravel安装运行多个网站,同时保持特定租户数据分离,以实现完全独立的域名设置。

5.7.3 2021-07-06 15:28 UTC

README

Packagist build status codecov Packagist Codacy Badge Join our Discord server Mentioned in Awesome Laravel

一个无侵入的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.phpconfig/webserver.php 文件并修改以满足您的需求。

确保您已在 database.php 中配置了系统连接。如果您没有覆盖系统连接名称,则使用 default 连接。

现在运行

php artisan migrate --database=system

这将运行所需的系统数据库迁移。

支持者

感谢所有支持者!🙏 [成为支持者]

68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f74656e616e63792f6261636b6572732e7376673f77696474683d383930

赞助商

通过成为赞助商来支持此项目。您的徽标将显示在此处,并带有链接到您的网站。 [成为赞助商]

68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f74656e616e63792f73706f6e736f722f302f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f74656e616e63792f73706f6e736f722f312f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f74656e616e63792f73706f6e736f722f322f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f74656e616e63792f73706f6e736f722f332f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f74656e616e63792f73706f6e736f722f342f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f74656e616e63792f73706f6e736f722f352f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f74656e616e63792f73706f6e736f722f362f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f74656e616e63792f73706f6e736f722f372f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f74656e616e63792f73706f6e736f722f382f6176617461722e737667 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f74656e616e63792f73706f6e736f722f392f6176617461722e737667

贡献者

许可证和贡献

此包在MIT许可证下提供。如果您有兴趣贡献,请确保阅读贡献指南

测试

使用以下命令运行测试

vendor/bin/phpunit

如果使用MySQL,请使用

LIMIT_UUID_LENGTH_32=1 vendor/bin/phpunit

请注意,运行测试将完全重置您的当前应用程序,删除租户和系统数据库,并删除Laravel目录中的tenancy.json文件。

变更

所有变更都在变更日志中。

联系方式

使用以下方式个人联系: