fbnkcmaster/xtenant

轻松使您的Laravel应用程序支持多租户


README

xTenant可以帮助您轻松地将Laravel应用程序转换为多租户应用程序。

(警告:该功能仍处于测试阶段,因此不建议在生产环境中使用)

哲学

总结:“即插即用”。

谁不喜欢“一劳永逸”呢?无需更多步骤,无需进行更多讨厌的配置更改?

这就是这个包的目标:只需“要求 & 设置”。无需更多步骤,无需额外配置,无需强制更改代码,您就可以使应用程序准备好多租户,并且所有操作都由您处理,以便使用单个Laravel安装运行多个网络应用程序。

功能

  • 简单安装
  • 控制台命令和Web界面
  • 多数据库支持
  • 支持:MySQL和SQLite
  • 子域名租户
  • 管理租户(名称、描述、图片):创建/编辑/删除 + 启用/禁用
  • 备份和恢复租户的数据库和文件

安装

您可以通过在项目根目录下的终端运行此命令来使用Composer安装此包

composer require fbnkcmaster/xtenant

入门(示例)

要开始使用,我已经准备了一个演示应用程序来测试这个包。

安装您在这里找到的演示应用程序,然后继续操作

https://github.com/FBNKCMaster/demo-app

如果一切正常,切换到您已安装demo-app的仓库文件夹

cd demo-app

使用Composer安装xFamily包

composer require fbnkcmaster/xtenant

使用方法

以下是您使用此包所需的步骤和命令

1/ 首先,设置包

php artisan xtenant:setup

您将被要求输入以下内容

  • [超级管理员]子域名,以便能够访问SuperAdmin的Web界面
  • SuperAdmin的电子邮件地址和密码
  • 最后,如果您想允许“www”作为子域名。

xTenant Setup via Console

2/ 创建您的第一个租户

您有两个选择

通过[命令]
php artisan xtenant:new

您将需要选择一个子域名、一个名称和一个描述为这个租户。

如果子域名已存在,您将被要求编辑或覆盖它。

然后您将被要求是否要运行迁移、种子并为该租户创建一个目录。

xTenant Create Tenant via Console

通过[超级管理员Web界面]

要创建新的租户或管理现有的租户,您需要访问超级管理员Web界面。

http://[superadmin].demo-app.test/login

输入您的凭据(超级管理员的电子邮件地址和密码)以连接。

然后点击“创建新租户”红色按钮来创建您的第一个租户。

xTenant SuperAdmin Login via Web Interface

xTenant SuperAdmin Dashboard Web Interface

xTenant SuperAdmin Update Settings via Web Interface

xTenant SuperAdmin Create Tenant via Web Interface

xTenant SuperAdmin Edit or Delete Tenant via Web Interface

3/ 这就结束了。如果一切正常,您将能够通过以下地址访问您的租户

http://[tenant_subdomain].demo-app.test

路线图

  • 支持PostgreSQL和SQLServer
  • 处理队列
  • Web控制台
  • 管理数据库(备份和恢复)

常见问题解答

  • 这是免费的吗?

    是的!

  • 我可以贡献吗?

    是的!

  • 如何支持?

    您能做任何帮助都是受欢迎的 :)

反馈

欢迎反馈!

您可以自由地打开问题或通过twitter直接联系我(@FBNKCMaster

贡献

xTenant是一个开源项目,任何人都可以贡献来让它变得更好。

所以如果你喜欢它的哲学和理念,请随意进行分支、测试、提交拉取请求、提出问题、提出建议以及赞助,都可以哦:)

鸣谢

特别感谢[Laravel + Vue.js/Alpine.js + Tailwind CSS]的优秀社区

  • Taylor Otwell及其团队:为Laravel这个伟大的框架
  • Tom Schlick:他是第一个谈论并带来关于使用Laravel实现多租户的见解和想法的人
  • Mohamed Said:他的YouTube教程和关于这个复杂主题的文章
  • Adam Wathan及其团队:为出色的Tailwind CSS
  • Caleb Porzio:为Alpine.js(真的是Vue.js的一个非常好的替代品)